Cause Validation

edokt Messages postés 137 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 30 septembre 2008 - 13 mai 2005 à 17:46
kriesgraf Messages postés 33 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 17 février 2021 - 17 avril 2009 à 23:47
Bonjour à tous



J'ai un petit soucie avec le fonctionnement de la propriété Cause Validation



Sur la feuille j'ai un TEXTBOX, et un événement de VALIDATING.

Quand j'essaie de fermer la feuille il se déclenche l'événement VALIDATING de
TEXTBOX.

Comment peux-je éviter ça. J'ai essayé d'enlever la propriété CauseValidation
de feuille mais ça ne donne rien.



Merci pour l'aide

4 réponses

NicoSoftt Messages postés 106 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 28 octobre 2005
13 mai 2005 à 17:49
Salut



Pourquoi mets tu un évènement dans Validating, tu peux pas faire une procédure à part que tu appeleras quand tu voudras ?

N$
0
edokt Messages postés 137 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 30 septembre 2008
13 mai 2005 à 18:04
Excuse moi, mais j'ai besoin d’utiliser l'événement
VALIDATING, Je sais qu'il ya plusieurs façon à faire, mais la question concerne
justement comment utiliser l'événement VALIDATING.
0
kriesgraf Messages postés 33 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 17 février 2021
17 avril 2009 à 21:04
Bon bah j'ai tappé ces trois mots dans google et chaque fois on me donne comme réponse (en anglais, espagnol, français, pour ce que j'ai vu):

Faut écrire:

     Cancel_Button.CauseValidation=false

Bon bah, si je sais lire en anglais et français le MSDN (pour comparer), il dise tous la même chose.
Mais ça ne marche pas .....

Alors moi, je mets des Debug.Print() dans tous les événements et j'essaye de comprendre:
TextBox1_Validating
TextBox1_Validating
CANCEL_Button_Click
TextBox1_Validating
Form1_FormClosing
--> La fenêtre reste ouverte, pas de Form1_FormClosed !

Le fait de mettre dans le concepteur de vue pour le contrôle Cancel_Button la propriété CauseValidation=False permet uniquement d'autoriser l'événement CANCEL_Button_Click d'être allumé (Fired/Raised), il faut quand même faire quelque chose pour cet évenement, une solution trouvée faire un:

TextBox1.CausesValidation =
False

Voilà le code source de ma "form", bon c'est le code qui marche !
Public

Class Form1

Private
Sub TextBox1_Validated(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles TextBox1.Validated

Me.ErrorProvider1.SetError(sender,
"")

End
Sub

Private
Sub TextBox1_Validating(
ByVal sender
As TextBox,
ByVal e
As System.ComponentModel.CancelEventArgs)
Handles TextBox1.Validating

If sender.Text =
"hello"
Then

Me.ErrorProvider1.SetError(sender,
"ErrorMsg")
e.Cancel =

True

End
If

End
Sub

Private
Sub CANCEL_Button_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles CANCEL_Button.Click
TextBox1.CausesValidation =

False

Me.DialogResult = Windows.Forms.DialogResult.Cancel

Me.Close()

End
Sub

Private
Sub OK_Button_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles OK_Button.Click

Me.DialogResult = Windows.Forms.DialogResult.OK

Me.Close()

End
SubEnd

Class
kriesgraf
0
kriesgraf Messages postés 33 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 17 février 2021
17 avril 2009 à 23:47
Et bien dans mon premier exemple j'avais créé une "Form" tout ce qui de plus ordinaire en rajoutant deux boutons: un OK et un Cancel.


Alors j'ai voulu recommencer en choisissant le modèle "dialog box", et patatrac, ma superbe solution ne marche plus!

J'essaye tout les solutions, peut-être en changeant le nom du bouton Cancel, en enlevant sa référence dans la propriété CancelButton de la Form. Rien à faire.

Puis je commence à sélectionner le TableLayoutPanel qui englobe les boutons OK et Cancel. Je m'aperçois que la propriété CausesValidation est à true, je la mets à False comme pour le bouton Cancel et là, .... ça marche !

Conclusion: il semble (mais je n'en suis pas sûr) que ce TableLayoutPanel impose ses conditions à ses boutons fils ?

A suivre...

kriesgraf
0
Rejoignez-nous