Bonjour
comment je peux interdire la saisie caractères sauf les chiffres dans 2 contrôles TextBox,le premier pour saisir les entiers et l'autre pour les décimales dont le séparateur est le point(.)
merci
Bonjour
comment je peux interdire la saisie caractères sauf les chiffres dans 2 contrôles TextBox,le premier pour saisir les entiers et l'autre pour les décimales dont le séparateur est le point(.)
merci
Si t'utilises ASP.Net, alors regarde du côté d'AjaxControlToolkit, avec le FilteredTextBox.
Si t'utilises WinForm, utilises le contrôle MaskedTextBox.
J'utilise WinForm avec le contrôle TextBox,et en mode programmation de son événement KeyPress le programme est le suivant:
ce petit programme interdit l'écriture des caractères sauf les chiffres,mais un petit souci est quand je vaudrais effacer un nombre saisi avec la touche de clavier "backspace" ca marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If Not Char.IsDigit(e.KeyChar) Then e.Handled = True End If
des chiffres entiers :
des décimales... dans ce cas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 If (Char.IsLetter(e.KeyChar)) Or (Char.IsPunctuation(e.KeyChar)) Then e.Handled = True End If
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 If (Char.IsLetter(e.KeyChar)) Then e.Handled = True End If
c'est excellent
il reste une petite remarque concernant le deuxième programme qui accepte la virgule(,) dans la saisie.
Non je ne pense pas que c pas possible de l'éviter malheureusement, parce qu'il y a des ordinateurs qui acceptent la virgule comme séparateur décimal (ça dépend de la config dans la paramètres régionaux).
Tu peux toujours faire des conditions
ah ajoute ça aussi pour éviter les espaces :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 (Char.IsSeparator(e.KeyChar))
Parmi les différentes méthodes fournies ci-dessus cela pourrait marcher si on est que sûr l'utilisateur ne va se tromper et mettre deux fois un séparateur pour un même nombre. Si on ne pas empêcher ce cas d'utilisation alors les masques de saisies sont les bienvenues !!!
Le mieux reste de vérifier par expression règulière ex: [0..9]
Sur le forum et sur Google tu auras tout ce que tu cherches
Bien vu pour les expressions régulière, voir cette discussion
Sinon comme dit dans la dite discussion cité précédemment, utiliser le bon control est parfois bien plus efficace ^^ le NumericUpDown.
P.S. : Géré l'évènement KeyPress est bien mais il laisse encore passer le CTRL + V qui permet de coller du text, celui-ci ne sera pas filtré et passera ta barrière.
Tout à fait
Ou mieux, du control NumericUpDown qui est spécialement fait pour gérer des chiffre
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager