bonjour
je souhaiterai eviter que dans une textBox un user saisisse des caractères(je souhaite qu'il n'y ai que des chiffres) pour ensuite m'en servir pour un calcul.
merci d'avance
Version imprimable
bonjour
je souhaiterai eviter que dans une textBox un user saisisse des caractères(je souhaite qu'il n'y ai que des chiffres) pour ensuite m'en servir pour un calcul.
merci d'avance
Bonjour
Sur l'évènement TextChange effetue un contrôle du contenu de la TextBox avec une Expression Régulière.
Cordialement
je cherche la mêm chose, si tu trouve la réponse merci de la noter, je ferais de même
;)
qu'entend tu par une expression réguliere?
Bonsoir
La réponse n'est pas loin juste ici http://faqcsharp.developpez.com/?pag...orm_txtbox_num dans la F.A.Q toujours pensez a y faire un tour
je pas compris ce qu'il y a de marquer dans la faq.je débute dans la programmation et je pige pas un mot.
essaye cette solution qui marche 100000000000%
je veins de l'implémenter dans mon travail :
Code:
1
2
3
4
5
6
7
8
9 private void txtPartyPostalcode_KeyPress(object sender, KeyPressEventArgs e) { // N'accepte que du numérique if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13) { e.Handled = true; } }
Qu'est ce que tu n'as pas compris la dedans ?Citation:
Comment ne saisir que des caractères numériques dans mon TextBox ? [haut]
auteur : abelman
On se sert de l'événement KeyPress pour intercepter les caractères entrés dans le TextBox.
La propriété Handle de la classe KeyPressEventArgs indique à l'application ce qu'il faut faire du caractère intercepté.
Si elle vaut false, le traitement par défaut du caractère (l'affichage pour les caractères imprimables) est appliqué.
Si elle vaut true, c'est votre code qui décide ce qu'il faut faire du caractère. Si vous ne faites rien, il ne sera pas affiché. Sa valeur par défaut est false.
Exemple simple
Code:
1
2
3
4
5
6 private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if (!char.IsDigit(e.KeyChar)) // Tous les caractères non numériques ne sont pas traités sur le TextBox. e.Handled = true; }
Remarquer qu' avec ce code, des touches générant un caractère non imprimable (comme la touche BACK) n'auront aucun effet sur le textbox.
Si vous voulez faire un véritable contrôe TexBox numérique, vous devez en tenir compte, gérer le copier-coller CTRL+C et SHIFT+INS avec l'événement KeyDown, et aussi avec le clic droit (menu contextuel coller) sur la souris.
J'ai codé mes propores controles pour des textbox numeric date monnaie et autres.......
ajoute moi sur msn et je te send la dll
fallysoft@hotmail.com
ce que je ne compren pas c'est ca
"if (!char.IsDigit(e.KeyChar))
{
// Tous les caractères non numériques ne sont pas traités sur le TextBox.
e.Handled = true
}"
le if c'est bon
!char deja je comprend plus
is digit encore moins
le e point quelquechose c'est pareil et key char de meme.en fait tout quoi!!
pour précision je débute dans la programmation en général merci d'etre indulgent.
dsl mais je n'utilise pas msn.:yaisse2:(c'est rare je sait)
Salut,
bah si tu debutes, pourquoi ne pas utiliser directement du standard à savoir le NumericUpDown qui fait exactement ce que tu cherches, sans avoir à t'embeter avec des handler perso ?
Effectivement, pas besoin de réinventer la roue...
Si tu ne comprends pas ce code, c'est que tu ne connais pas les bases du langage C#... je ne te reproche pas de débuter évidemment, ce serait idiot, mais je te conseille vivement de chercher des cours et tutoriels sur C# avant de chercher à aller plus loin, sinon tu auras beaucoup de mal à avancer !
Pour ce qui est de "char", "IsDigit", "KeyChar", "Handled" etc, tu trouveras toutes les réponses dans la documentation du .NET Framework.
je vous remercie pour vos réponses et je vais essayer tout vos solutions.