Fermeture de la feuille mdi child [Résolu]

Signaler
Messages postés
137
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
30 septembre 2008
-
Messages postés
137
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
30 septembre 2008
-
Salut à tous



Voila le problem que j'ai



J'ai une feuille mere et plusieur feuille enfants



pour fermer la feuille enfant j'ai code l'evenement closing ou je pose une question si on veut fermer la fenêtre ou pas



public void frm_Closing(object sender, System.ComponentModel.CancelEventArgs e)

{






DialogResult dr = MessageBox.Show ("Voulez-vous
fermer?", "Fermeture...", MessageBoxButtons.YesNo
,MessageBoxIcon.Question ) ;

if (dr == DialogResult.No )

{

e.Cancel = true;

}



}



pour la feuille mere pareille j'ai codé l'evenement closing avec une seul diference que j'ai ajouté le controle de ACtiveMdiChild



DialogResult dr = MessageBox.Show ("Voulez-vous quitter
l'application?", "Fermeture...", MessageBoxButtons.YesNo
,MessageBoxIcon.Question ) ;

if (dr == DialogResult.Yes )

{


foreach ( frmDiag frm in this.MdiChildren )
//frmDiag mes feuille enfants

{


frm.frm_Closing(this, new
System.ComponentModel.CancelEventArgs () );



}



if (this.ActiveMdiChild != null)

{

e.Cancel = true;

return;

}

else

{

this.Dispose ();

Application.Exit ();



}





le problem qu j'ai c'est quand je ferme la feuille mere l'evenement
closing de la feuille enfants se declanche plus tot que l'evenement
closing de la feuille mere



En fait je vaut que quand on ferme la feuille enfant je pose une question

mais quand on ferme la feuille mere on pose plus la question de confirmation



Comme par exemple dans le word si on a plusier documents ouvert et on
essay de fermere l'apllication word , la confirmation de fermeture de
document est demandé sauf si on a fait de changements dans le documents
(la quaestion de sauvgarder le document , et sin on n'a pas fait des
changement dans le document il se ferme sans confirmation



je sais pas si j'arrive a expliquer le problem mais si vous avez des idees, merci de me les transmetre



Merci beacoup

4 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
90
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
90
Salut,

Override WndProc et utilise le message WM_CLOSE.
Ca donne quelquechose de ce genre :

private const int WM_CLOSE = 0x0010;


protected override void WndProc(ref Message m)
{
if ( m.Msg == WM_CLOSE)
{
// code à executer sur la fermeture du formulaire MDIContainer.
}


base.WndProc (ref m);
}

/*
coq
MVP Visual C#
*/
Messages postés
137
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
30 septembre 2008

Merci infiniment, COQ, pour la reponse



Comme je suis un debutant peut tu un peu detailler parce que j'ai pas
compris ou il faut mettre ce code dans la feille mere ou dans mdi
child??



si tu a un exemple ça fera plus facile pour moi à comprendre



merci beacoup
Messages postés
137
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
30 septembre 2008

jet te remercie beacoup