filipegomes
Messages postés17Date d'inscriptiondimanche 25 avril 2004StatutMembreDernière intervention16 janvier 2008
-
16 janv. 2008 à 20:10
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 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;
}
}