Ne pas vérifié les champs quand on fait "Annuler"

frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008 - 16 avril 2008 à 10:08
frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008 - 16 avril 2008 à 16:51
Bonjour,

Je suis nouveau en VB.NET .
J'ai une form avec plusieur textbox dont je vérifie la saisie sur les evenements "validating", mais j'aimerais ne pas faire ces vérifications quand l'utilisateur clic sur le bouton "Annuler"
j'ai essayé de metre la propriété "CausesValidation=false" du bouton "Annuler" mais sans resultat.
 
Pouver vous m'aider ?
merci.

17 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 avril 2008 à 10:17
Salut,
Je ne sais pas si .NET propose quelque chose de plus "propre"

Mais tu peux mémoriser le Click sur Annuler dans un Boolean et sortir des événement Validating si le boolean est TRUE

Voilà l'idée.!

@+: Ju£i?n
Pensez: Réponse acceptée
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
16 avril 2008 à 10:26
de quel bouton 'annuler' parles tu ?
d'une msgbox perso ?
0
frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008
16 avril 2008 à 10:34
Je parle du bouton "Annuler" de ma form, qui me permet de la fermer.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
16 avril 2008 à 10:40
le causesvalidation=true va faire que le champ que tu quitte (focus) est validé (ou non)

un solution serait de déclencher toi même la validation (Me.ValidateChildren) lorsque tu cilques sur le bouton Ok du formulaire
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008
16 avril 2008 à 10:43
voila ma form
0
frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008
16 avril 2008 à 11:05
Merci,
 mais j'aimerais que la vérification du textbox "date" (par exemple) soit fait à la sortie du champ, quand on passe au champ suivant ou quand on clique sur le bouton "OK" et c'est seulement quand on clique sur "Annuler" que je ne vérifie rien.
C'est à dire que même si le champ date est érroné je puisse sortir de ma form.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
16 avril 2008 à 11:15
possible de tester quel bouton a pris le focus...

Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
If Me.ActiveControl IsNot BtnCancel Then
e.Cancel TextBox1.Text.Length 0
End If
End Sub

Private Sub TextBox2_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox2.Validating
If Me.ActiveControl IsNot BtnCancel Then
e.Cancel TextBox2.Text.Length 0
End If
End Sub

Private Sub BtnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancel.Click
Me.Close()
End Sub
0
frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008
16 avril 2008 à 11:43
ca ne marche pas car "me.ActiveControl" fait toujours référence au textbox dans l'événement "validating" et non au bouton "Annuler"
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
16 avril 2008 à 11:54
Après quelques test, il semble qu'il faille ajouter ceci ....
e.Cancel = False
dans l'evt FormClosing de la form.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
16 avril 2008 à 12:00
ca fonctionne, je l'ai testé....
par contre, il faut bien évidemment spécifier que le bouton BtnCancel ne doit pas déclencher de Validation.....
donc son CausesValidation est à False
0
frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008
16 avril 2008 à 12:03
Merci, mais j'ai déja essayé.
ce code marche que si on clique sur la croix rouge de la fernetre ou alt+F4 mais pas si l'on utilise un bouton "Annuler" de la form
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
16 avril 2008 à 12:21
je viens de retester mon code (j'ai tout retapé et recréé ma Form)
ca fonctionne pourtant bel et bien...

je donne le focus a TextBox1, je n'y saisie rien, et je quitte la form en pressant tranquillement BtnCancel...

(je le répète, BtnCancel.CausesValidation = False)


Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
If Me.ActiveControl Is BtnCancel Then
If TextBox1.Text.Length = 0 Then
MessageBox.Show("TextBox1 n'est pas renseigné")
e.Cancel = True
End If
End If
End Sub

Private Sub TextBox2_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox2.Validating
If Me.ActiveControl Is BtnCancel Then
If Not IsNumeric(TextBox1.Text) Then
MessageBox.Show("TextBox2 doit contenir un numérique")
e.Cancel = True
End If
End If
End Sub

Private Sub BtnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancel.Click
Me.Close()
End Sub
0
frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008
16 avril 2008 à 13:23
Je vien de tester t'on code est il y à un petit problême car tu test (par exemple)si le "textbox1.text.lenght=0" que si le controle actif est "BtnCancel" ce qui n'est jamais le cas.
"If Me.ActiveControl Is BtnCancel Then "

Tu peut fermer la fenetre mais tu ne controle rien dans tes champs.

merci.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
16 avril 2008 à 13:27
IsNot, pardon, au lieu de Is

j'ai fait un changement de dernière minute ^^
0
frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008
16 avril 2008 à 13:36
Super ça marche, mais je vais être un peu pénible.


Si l'on ajout le parametre suivant à la form:
me.CancelButton="BtnCancel"
pour que le bouton "Annuler" soit exécuté en appuyant sur Esc ca ne marche plus.


 
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
16 avril 2008 à 13:54
galère, les Validations 'automatisées'.... pourquoi ne pas le faire 'a la main' : sur le LostFocus ou BtnOk_click, valider les infos rentrées...
0
frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008
16 avril 2008 à 16:51
Je vien de faire plein de test et grosse galére pour faire avec "validating"
merci pour les infos
0
Rejoignez-nous