Limiter les caractères dans un TextBox

Signaler
Messages postés
17
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
16 janvier 2008
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonsoir à tous,
Grâce à tous les petits codes présent dans se site, je suis en train de créer une class TextBox qui me servira à saisir des sommes pour un gestionnaire de compte bancaire. Je voudrais limiter la virgule qui sert de décimale mais je ne sais pas comment faire. Je m'explique. Lorsque l'utilisateur appui 2 fois sur la touche virgule j'aimerais qu'elle n'apparaisse qu'une seule fois dans le TextBox. Donc, comment limité la saisie de la virgule dans un textbox. Voici un exemple du code :

protected

overridevoid OnKeyPress(KeyPressEventArgs
e)
{
   // stoque le séparateur décimal du système
   char Separateur = CultureInfo
.CurrentCulture.NumberFormat.NumberDecimalSeparator[0];

   // Si la caractère tapé est numérique
   if (char
.IsNumber(e.KeyChar))
   {      if (e.KeyChar '²') e.Handled true; // Si c'est un '²', on gère l'evenement.
      
else e.Handled = false; // Sinon, on laisse passer le caractère (On peut omettre cette ligne)
   
}
   // Si la touche est une ',' ou un '.' on autorise la saisie   elseif ((e.KeyChar '.') || (e.KeyChar ','
))
   {
      e.Handled =
false;
      // Force l'ecriture du bon séparateur
      e.KeyChar = Separateur;
   }
   // Si le caractère tapé est un caractère de "controle" (Enter, backspace, ...), on laisse passer
   elseif (char
.IsControl(e.KeyChar))
   {
      e.Handled =
false;
   }
   // Et sinon, on gère toutes les autres touches tapées, et on en fait rien
   else
   {
      e.Handled =
true;
   }
}

Merci pour votre aide...

4 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
53
Salut,
Pourquoi ne pas utiliser une MaskedTextbox ou un NumericUpdown?

<hr />
-My Blog-
Messages postés
17
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
16 janvier 2008

NumericUpdown n'est pas terrible, déjà testé.
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
53
Ha, qu'est ce qui te plaît pas à ce Control ?

<hr />
-My Blog-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
35
le numericupdown est pourtant très bien... t'es sure de n'avoir que du numérique, il ajoute la virgule...

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]