Problème de messageBox [Résolu]

Signaler
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
-
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
-
Bonjour,

J'ai un souci avec une messageBox. J'ai une frame qui possède un bouton quitter (la croix rouge en haut à droite en fait). Lorsque l'utilisateur clique sur cette croix (pour quitter), j'affiche une messageBox qui demande à l'utilisateur s'il veut vraiment quitter sans sauvegarder. L'utilisateur a alors le choix :
Soit il clique "OK" et ça quitter => ça c'est bon ça marche
Soit il clique sur "Annuler" et là je voudrais alors que la frame ne se ferme pas, mais je ne vois pas comment le coder.
J'ai mis ma messageBox sur l'évenement "WindowClosing" et mon code est le suivant :

private void formParametre_FormClosing(object sender, FormClosingEventArgs e)
        {
            //Si on clique sur "Quitter" (la croix rouge en fait), ça lance un
            //message box qui demande à l'utilisateur de confirmer qu'il
            //souhaite quitter sans enregistrer les éventuelles modofications
            MessageBox.Show("Quitter sans sauver les changements ?", "Quitter", MessageBoxButtons.OKCancel);
            if (MessageBox.Show("Quitter sans sauver les changements ?", "Quitter", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
            {
                   //NE PAS FERMER LA FENETRE
            }
        }

Comment faire pour empecher la fenetre de se fermer ,

Merci d'avance

3 réponses

Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
il te suffit de rajouter :

e.Cancel = true;

pour annuler la fermeture.

<hr size="2" width="100%" />Working as designed
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
Et pour éviter que ta message box apparaissent si l'application est fermée par le système et non par l'utilisateur (par exemple lorsque tu éteint le PC sans fermer l'application) tu peux connaitre la raison de la fermeture en testant e.CloseReason.

<hr size="2" width="100%" />Working as designed
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
1
Merci Nikoui, ça marche très bien