audweiller
Messages postés10Date d'inscriptionvendredi 21 novembre 2003StatutMembreDernière intervention 4 mai 2005
-
26 avril 2005 à 16:05
edokt
Messages postés137Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention30 septembre 2008
-
17 mai 2005 à 01:36
Bonjour,
Je souhaiterais empécher la saisie des chiffres de 0 à 9 dans un textBox. En revanche il faut pouvoir effacer donc l'utilisation du "backspace" doit être possible.
Si vous savez comment faire, svp aidez-moi...
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 26 avril 2005 à 16:28
Salut,
Tu devras aussi gerer l'event TextChanged ou effectuer une validation avant traitement des données saisies : la gestion par KeyPress ne permet pas de filtrer une chaine collée par exemple. :-)
audweiller
Messages postés10Date d'inscriptionvendredi 21 novembre 2003StatutMembreDernière intervention 4 mai 2005 26 avril 2005 à 17:16
Merci !
Pour l'évent KeyPress, no souci
En revanche pour le TextChanged, le paramètre est de type EventArgs et je n'arrive pas à récupérer le caractère saisit contrairement à KeyPressEnventArgs. Impossible de faire un e.KeyChar et je vois pas comment faire autrement....
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 26 avril 2005 à 17:20
Justement, il s'agit de faire la validation de toute la chaine (textBox1.Text) pour en supprimer les chiffres si il y en a.
Mais côté performances le mieux est de le faire à la validation des données, sinon à chaque modification (et donc aussi à chaque saisie de caractère) il y aura parcours de la chaine, côté perfs ça ne doit pas être génial.
Sinon il doit bien y avoir moyen de filtrer uniquement la chaine, à voir.
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 27 avril 2005 à 09:55
moi j'utilise l'évènement Validating avec une Regex (new Regex("^[0-9]*$"))
si ca ne correspond pas, je mets e.Cancel = true, ainsi le focus ne quitte pas le textbox.
On peut aussi, à l'aide d'un ErrorProvider afficher une icône et un message d'erreur.
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 15 mai 2005 à 21:50
Exact, je me suis emmelé les pinceaux dans l'ordre des events.
Pour éviter de se retrouver dans un cas d'impossibilité de fermeture du form tant que les données ne sont pas valides, tu peux forcer
e.Cancel = false
au niveau de l'event Closing du Form (par defaut il vaut false, sauf dans le cas d'un Validating "bloquant")
Pour ce qui est de la détection de la fermeture du Form au moment de valider les données je me demande si c'est faisable.
edokt
Messages postés137Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention30 septembre 2008 15 mai 2005 à 22:00
Justement c'est ça le problem. Quand on click sur le Top Right x ,
avant de executer l'evenement closing il declenche l'evenement
Validating de TextBox, parceque au moment quand tu click le Top Right X
le TextBox perd le focue don il delcnhe l'evenement Validating.
Si tu a essayer tu peux m'envoyer la solution de ce qur tu a fait Merci, Je trouve que c'est un problem de mogique ..
edokt
Messages postés137Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention30 septembre 2008 17 mai 2005 à 01:36
Je peux plus la ..
Chers amis.
Je sais que il y a plusiuers moyen de valider de control, Il y a en a plain, je peux meme vous les proposer.
1. on peux utiliser l'evenement Leave de Textbox: on verifie, et si il
y a une erreur on fait textbox.Select() et le textbox ne perd pâs le
focus , en plus l'evenement leave ne se declneche pas quand on ferme la
feuille. Donc une solution.
2. On peux faire le control de validation sous un click de bouton valider par exemple.
On fait la verification en appeleant une fonction etc.
3. On peux mettre de fonction dans l'evenement KeyPress ou bien Chnage
4. On peux créer le control herite de textBox qui par exemple ne prend que de valeurs numeriques.
Il y a en plain de moyen. Le problem pourquoi ça marche le Validating ou est la logique de .Net.
et SVP ne proposer pas d'autre solution si vous ne voyez pas comment il faut fair en utilisant Validating et CausesValiidation