[VB.NET] Virgule Textbox

Résolu/Fermé
Gornarf Messages postés 121 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 15 mai 2014 - Modifié par Gornarf le 26/08/2011 à 08:05
Gornarf Messages postés 121 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 15 mai 2014 - 26 août 2011 à 11:16
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

Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
26 août 2011 à 11:06
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
Gornarf Messages postés 121 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 15 mai 2014 3
26 août 2011 à 11:10
je test tout de suite! merci
0
Gornarf Messages postés 121 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 15 mai 2014 3
26 août 2011 à 11:16
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