à tous,
Voilà, j'ai un petit problème de communication/fonctionnement entre 2 forms et je ne sais pas comment le résoudre... peut-être aussi que je m'y prends mal ?
Je vais essayer de faire simple :
J'ai donc deux forms, form1 et form2. Dans form1, lorsque je clique sur un bouton j'ouvre form2 avec ShowDialog() et je récupère ensuite le résultat du DialogResult (voir plus loin).
De là, je remplis qqs textBox dans form2, puis je valide le tout en cliquant sur un bouton Ok. La validation des textBox se fait dans un try/catch.
Ensuite, de retour dans form1, je regarde si le DialogResult = Ok et, si oui, alors je fais d'autres traitements (je récupère des données dans form2 via un accesseur).
Mon pblm se situe au niveau du try/catch dans la form2 : si une erreur est levée pdt la validation des textBox, l'erreur est affichée mais dès que je clique sur le bouton Ok de la boîte de dialogue, form2 se ferme automatiquement et les traitements situés après le "if(result == DialogResult.OK)" dans le form1 s'effectuent... alors qu'ils ne devraient s'effectuer UNIQUEMENT s'il n'y a pas eu d'erreur. En fait, je pensais que s'il y avait une erreur, cela aurait bloqué la fermeture de form2.
J'ai essayé d'initialiser la propriété DialogResult du bouton Ok (situé sur la form2), uniquement dans le try/catch et pas avant. Ainsi j'espèrais renvoyer le "DialogResult.OK" que si le traitement ne provoquait pas d'erreur. Manque de bol, si une erreur survient pdt la validation des textBox une erreur est affichée (jusque là tout va bien !) mais ensuite rien ne se passe. Il faut que je clique une seconde fois sur le bouton Ok pour valider les textBox, form2 se ferme alors et form1 poursuit les traitements.
Bref, j'attends vos avis...
Lionel.
Message édité par pot2yaourt le 10-05-2007 à 14:38:27