Limiter les caractères dans un TextBox

filipegomes Messages postés 17 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 16 janvier 2008 - 16 janv. 2008 à 20:10
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 17 janv. 2008 à 09:06
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

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 janv. 2008 à 20:24
Salut,
Pourquoi ne pas utiliser une MaskedTextbox ou un NumericUpdown?

<hr />
-My Blog-
0
filipegomes Messages postés 17 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 16 janvier 2008
16 janv. 2008 à 20:38
NumericUpdown n'est pas terrible, déjà testé.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 janv. 2008 à 21:03
Ha, qu'est ce qui te plaît pas à ce Control ?

<hr />
-My Blog-
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
17 janv. 2008 à 09:06
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]
0
Rejoignez-nous