[VB.NET] Virgule Textbox

Résolu
Bonjour à toutes et à tous,

Dans mes précédents poste je tournais avec VBA, je suis passé en VB.net sous VS2010express.

J'ai plus ou moins assez rapidement retrouvé mes repères de VBA sauf pour une chose.

A l'aide d'internet, j'ai réussi a créer une classe numerictextbox, il s'agit donc de textbox exclusivement numérique.

J'ai ensuite paramétré le nombre max de caractère dans chacune de mes box

Ce que je n'arrive pas a faire c'est de limiter la virgule à une seule!!

Actuellement je peux en mettre 2 ou 3 dans ma box si je le souhaite ce qui ne m'arrange pas.

Quelqu'un aurait une idée de code pour régler ca?

==> limiter la saisie de une seule virgule dans la textbox et donc annulée les saisie qui surviendraient après qu'une virgule ait déjà été introduite.

Merci d'avance

3 réponses

  1. Ca marche nickel nico, merci.

    Je poste ma solution complète qui permet de remplacer le point par la virgule et de n'autorisée la saisie que de 1 seule virgule dans la TXTbox

    Private Sub NumericTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles NumericTextBox1.KeyPress

    'Remplace le point par une virgule

    If Asc(e.KeyChar) = 46 Then e.KeyChar = ","
    If Asc(e.KeyChar) = 44 And (CType(sender, TextBox).Text.IndexOf(",") > 0 Or CType(sender, TextBox).Text = "") Then e.Handled = False
    NumericTextBox1.MaxLength = 8

    'N'autorise qu'une seule virgule dans la box

    If (e.KeyChar = ",") Then If (NumericTextBox1.Text.Contains(",")) Then e.Handled = True

    End Sub
    0
    1. je test tout de suite! merci
      0
      1. Salut,

        tu peut le gerer dans l'evenement KeyPress avec un code comme celui la tu peut l'ameliorer car la je le fais rapidement en C# mais bon la syntaxe et assez ressemblante a VB.net pour cet exemple

          if(e.KeyChar == ',')
                    {
                        if(textBox1.Text.Contains(","))
                        {
                            e.Handled = true;
                        }
                    }
        
        0