[VB.NET] Virgule Textbox [Résolu/Fermé]

Signaler
Messages postés
122
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
-
Messages postés
122
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
-
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

Messages postés
323
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
28 août 2013
102
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;
                }
            }
Messages postés
122
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
3
je test tout de suite! merci
Messages postés
122
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
3
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