je recupere dans une textbox un code postal qui est sous forme string. comment verifier que l'utilisateur qui a saisi une valeur dans cette textbox a bien saisi un nombre?
merci.
Alex
je recupere dans une textbox un code postal qui est sous forme string. comment verifier que l'utilisateur qui a saisi une valeur dans cette textbox a bien saisi un nombre?
merci.
Alex
les textbox peuvent etre configurées pour recevoir un nombre seuleument.
une propriété certainement...
C'est bcp mieux que de controller la saisie par la suite...
Tu peux aussi tester les touches appuyées par l'utilisateur dans ce TextBox pour n'activer que les nombres...
Comme ça, l'utilisateur ne pourra pas entrer autre chose que des nombres dans ton TextBox.
Comment faire cela?Tu peux aussi tester les touches appuyées par l'utilisateur dans ce TextBox pour n'activer que les nombres...
Comme ça, l'utilisateur ne pourra pas entrer autre chose que des nombres dans ton TextBox.
Laquelle?les textbox peuvent etre configurées pour recevoir un nombre seuleument.
une propriété certainement...
1) Tu commences par créer une méthode qui teste si le code de la touche clavier est un nombre et qui renvoie True si c'est le cas, sinon False (Elle pourra être utilisée pour tous les textbox que tu veux.
2) Tu actives l'événement TextChanged de ton TextBox (comme ça l'événement se lance dès que l'utilisateur appuie sur un boutton dans le TextBox.
3) Dans les paramètres de l'événement TextChanged, tu peux récupérer le code de la touche qui a été préssée. Tu lances alors ta méthode pour savoir si cette touche correspond à un nombre.
- Si c'est un nombre, tu ne fais rien et le nombre s'affiche.
- Si c'est une autre chose, tu met this.cancel = true dans ton événement, ce qui aura pour effet d'annuler la dernière pression de touche dans ton TextBox. L'utilisateur ne verra meme pas le caractère se rajouter disparaitre.
J'ai utilisé cette méthode il y a quelques mois et je sais qu'elle fonctionne puisque je l'avais implémentée sur tous mes TextBox (tu peux aussi tester pour avoir que des lettre, ect...) mais je n'ai plus le code sous les yeux...
Si tu es encore bloqué ce soir, je pourrai un peu plus t'aider.
salut
comme déjà mentionner , tu peux dès la saisie contrôles si le user a saisie ou non un chiffre si non tu peux opter pour la solution suivante :
1- parcours de la chine de caractère
2- récupération des éléments ( entité Char )
3- tu fait la conversion de chaque élement en entier
4- teste si le chiffre obtenu est compri entre le code ASCII de 0 et 9 (48<indice<57)
5- si tu trouve mieux avise nous SVP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for(int i=0;i<chaine.Length;i++) { int indice =Convert.ToInt32(chaine[i])-Convert.ToInt32('0'); /* ici tu teste si indice est compris entre le code ascii de 0 et de 9 */ }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 // // maskedTextBox1 // this.maskedTextBox1.Location = new System.Drawing.Point(282, 135); this.maskedTextBox1.Mask = "000000"; this.maskedTextBox1.Name = "maskedTextBox1"; this.maskedTextBox1.Size = new System.Drawing.Size(100, 20); this.maskedTextBox1.TabIndex = 22;
on vient de le dire au dessus. la solution c'est l'utilisation du control MaskedEdit.si tu trouve mieux avise nous SVP
et sinon on aurait pu utiliser un Validator utilisant une regex
La solution du masque est la meilleure de ce que j'ai lu. Mais ceci est une validation "client". Tu peux également valider que ta donnée est un nombre d'une façon "business" en utilisant, par exemple, Int32.TryParse().
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