Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Annuler l'évènement validate d'un contrôle

3 réponses
Avatar
Denis P
Bonjour,

Je rencontre un petit problème qui est peut-être tout simple à résoudre,
mais je n'arrive pas à trouver la réponse. Sur certains TextBox d'une
feuille, dans l'évènement validate, j'effectue une vérification pour
m'assurer que le TextBox n'est pas vide avant de donner le focus à un autre
contrôle(tout simplement parce que c'est un champ obligatoire). Jusque là
pas de problème ça fonctionne à merveille. Cependant sur ma feuille j'ai
aussi un bouton Annuler, qui ferme simplement ma feuille sans rien
enregistrer.

Mon problème est donc là. De quelle façon puis-je contourner l'évènement
validate (ou lost_focus, qui intervient juste après validate) d'un contrôle
afin de donner le focus à mon bouton Annuler pour pouvoir fermer ma feuille.
Je pourrais évidemment effectuer ma vérification dans l'évènement got_focus
de chacun de mes contrôles sauf pour mon bouton Annuler et ainsi je
règlerais le problème, mais je trouve que ça fait beaucoup de fois la même
condition qui se répète.

Donc au lieu de répèter 20 fois une condition du genre:

If .... Then
MsgBox
TextBox1.SetFocus
End if

dans chacun de mes contrôles, il doit sûrement avoir moyen de faire quelque
chose du genre dans l'évènement Validate de mon TextBox :

If je clique sur le bouton Annuler Then
Exit Sub
Else
MsgBox
End If

Alors si quelqu'un peut me dire de quelle façon je peux parvenir à coder
cette condition, j'en serais bien heureux.

Merci à l'avance pour vos réponses.

Denis P

3 réponses

Avatar
François Picalausa
Bonjour/soir,

Ne pourrais-tu pas prendre le problème autrement?
Ne vérifier les entrées que lors du click sur le boutton OK (ou
correspondant) et refuser d'accepter la feuille tant que tout n'est pas
rempli?
On pourrait éventuellement imaginer mettre les labels en tête de chaque
textbox non remplies en rouge, on pourrait aussi replacer le focus dans une
textbox après qu'une messagebox disant que certaines données ne sont pas
valide soit appraue (via SetFocus).

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Denis P" a écrit dans le message
de news:
Je rencontre un petit problème qui est peut-être tout simple à
résoudre, mais je n'arrive pas à trouver la réponse. Sur certains
TextBox d'une feuille, dans l'évènement validate, j'effectue une
vérification pour m'assurer que le TextBox n'est pas vide avant de
donner le focus à un autre contrôle(tout simplement parce que c'est
un champ obligatoire). Jusque là pas de problème ça fonctionne à
merveille. Cependant sur ma feuille j'ai aussi un bouton Annuler,
qui ferme simplement ma feuille sans rien enregistrer.

Mon problème est donc là. De quelle façon puis-je contourner
l'évènement validate (ou lost_focus, qui intervient juste après
validate) d'un contrôle afin de donner le focus à mon bouton Annuler
pour pouvoir fermer ma feuille. Je pourrais évidemment effectuer ma
vérification dans l'évènement got_focus de chacun de mes contrôles
sauf pour mon bouton Annuler et ainsi je règlerais le problème, mais
je trouve que ça fait beaucoup de fois la même condition qui se
répète.


Avatar
Vincent Guichard
Denis P a écrit :
Bonjour,

Je rencontre un petit problème qui est peut-être tout simple à résoudre,
mais je n'arrive pas à trouver la réponse. Sur certains TextBox d'une
feuille, dans l'évènement validate, j'effectue une vérification pour
m'assurer que le TextBox n'est pas vide avant de donner le focus à un autre
contrôle(tout simplement parce que c'est un champ obligatoire). Jusque là
pas de problème ça fonctionne à merveille. Cependant sur ma feuille j'ai
aussi un bouton Annuler, qui ferme simplement ma feuille sans rien
enregistrer.

Mon problème est donc là. De quelle façon puis-je contourner l'évènement
validate (ou lost_focus, qui intervient juste après validate) d'un contrôle
afin de donner le focus à mon bouton Annuler pour pouvoir fermer ma feuille.
Je pourrais évidemment effectuer ma vérification dans l'évènement got_focus
de chacun de mes contrôles sauf pour mon bouton Annuler et ainsi je
règlerais le problème, mais je trouve que ça fait beaucoup de fois la même
condition qui se répète.




Met la propriété CausesValidation du boutton Annuler a False...
C'est à ca que ca sert, justement.


Vincent Guichard
Avatar
Denis P
Merci de ta réponse François,

Justement ce que tu me proposes, est la méthode que j'utilise
habituellement. Ça fonctionne effectivement très bien de cette façon et
règle générale c'est de cette façon que j'effectue mes validations. Mais
pour cette fois j'avais simplement envie de pousser les choses plus loin et
de faire différent pour effectuer mes validations. Alors je demandais tout
bonnement si justement c'était possible d'y arriver en employant une autre
méthode que la méthode traditionnel que tu me proposes et que j'utilise tout
le temps.

Disons simplement que je cherche à découvrir d'autres possibilités du
langage afin de parfaire mes connaissances et d'élargir mes horizons. Alors
je me demandais juste si c'était possible de le faire et si oui de quelle
façon. Si c'est impossible, et bien ce n'est pas si terrible, je reviens à
la bonne vieille méthode traditionnel.

Merci encore

Denis P


"François Picalausa" a écrit dans le message de
news:
Bonjour/soir,

Ne pourrais-tu pas prendre le problème autrement?
Ne vérifier les entrées que lors du click sur le boutton OK (ou
correspondant) et refuser d'accepter la feuille tant que tout n'est pas
rempli?
On pourrait éventuellement imaginer mettre les labels en tête de chaque
textbox non remplies en rouge, on pourrait aussi replacer le focus dans


une
textbox après qu'une messagebox disant que certaines données ne sont pas
valide soit appraue (via SetFocus).

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Denis P" a écrit dans le message
de news:
> Je rencontre un petit problème qui est peut-être tout simple à
> résoudre, mais je n'arrive pas à trouver la réponse. Sur certains
> TextBox d'une feuille, dans l'évènement validate, j'effectue une
> vérification pour m'assurer que le TextBox n'est pas vide avant de
> donner le focus à un autre contrôle(tout simplement parce que c'est
> un champ obligatoire). Jusque là pas de problème ça fonctionne à
> merveille. Cependant sur ma feuille j'ai aussi un bouton Annuler,
> qui ferme simplement ma feuille sans rien enregistrer.
>
> Mon problème est donc là. De quelle façon puis-je contourner
> l'évènement validate (ou lost_focus, qui intervient juste après
> validate) d'un contrôle afin de donner le focus à mon bouton Annuler
> pour pouvoir fermer ma feuille. Je pourrais évidemment effectuer ma
> vérification dans l'évènement got_focus de chacun de mes contrôles
> sauf pour mon bouton Annuler et ainsi je règlerais le problème, mais
> je trouve que ça fait beaucoup de fois la même condition qui se
> répète.