DialogResult et cancel

Résolu
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015 - 9 févr. 2007 à 14:45
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015 - 10 févr. 2007 à 09:13
Bonjour,

j'ai défini la propriété DialogResult à OK pour un bouton et lorsque le click se déclenche sur ce bouton, je vérifie certaines choses et affiche un message d'erreur en cas d'anomalie or le fait que dialogResult est positionné la form se ferme malgré le return

private
void btnOK_Click(
object sender,
EventArgs e)
{

   if (lstData.SelectedItems.Count == 0)
   {

      Error.Show(
"Blabla");

      return;
   }
...

}

n'y a t il donc pas un moyen d'annuler la fermeture de la form. J'ai essayé de caster avec "e" avec "CancelEventArgs" mais cela ne fonctionne pas ...
Je n'ai pas très envie de vérifier dans le FormClosing car cela m'obligerait à positionner une variable dans mon btnOk_Click...

DT
A voir également:

7 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
9 févr. 2007 à 23:46
Salut,

Ou alors tu passes complètement en manuel : tu ne te sert pas de la propriété DialogResult du bouton, tu affectes la bonne valeur à Form.DialogResult manuellement si la validation a réussit et tu fermes le formulaire.

/*
coq
MVP Visual C#
CoqBlog
*/
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
9 févr. 2007 à 15:08
Salut,

Le DialogResult ne fonctionne que si tu ouvres ta fenêtre avec ShowDialog.

ex:

using ( MaForm f = new MaForm() ) {
   if ( f.ShowDialog() == DialogResult.OK ) {
      // bla bla bla
   }
}

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015
9 févr. 2007 à 15:31
Je suis d'accord,
mais mon souci est que j'aimerai annuler dans le click du bouton OK la fermeture de la form si certaines conditions ne sont pas respectées. Mon problème n'est pas à l'appel de la form mais à la validation de celle-ci.

Le bout de code que j'ai donné se trouve dans le bouton qui à la propriété DialogResult à OK

DT
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
9 févr. 2007 à 16:04
oui... mais ça il faut le faire à l'intérieur de la form elle-meme.

Il faut que tu interceptes l'évènement FormClosing... là tu auras dans FormClosingEventArgs une propriétés Cancel.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0

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

Posez votre question
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015
9 févr. 2007 à 16:45
Désolé d'insister mais comme je le précise dans mon 1er post, je n'ai pas envie de positionner une variable dans mon btnOk_Click que je devrai gérer et traiter dans mon FormClosing. Ne puis-je pas directement dans le btnOk_click cancler la sortie de ma form
En clair : Faire un cancel dans btnOk_click.

DT
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
9 févr. 2007 à 20:07
car à ce moment, il est trop tot !

L'évènement FormClosing te permet de le faire tout simplement !

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015
10 févr. 2007 à 09:13
Merci Coq (& Sébastien),

Ta réponse me convient parfaitement, en plus actuellement je n'avais pas de this.Close() dans mon bouton OK et cela me "genais" un peu.

Donc la solution "manuelle" me convient tout à fait

Merci
DT
0
Rejoignez-nous