Fermeture de la feuille mdi child [Résolu]

Messages postés
137
Date d'inscription
mercredi 12 janvier 2005
Dernière intervention
30 septembre 2008
- 4 déc. 2005 à 14:51 - Dernière réponse :
Messages postés
137
Date d'inscription
mercredi 12 janvier 2005
Dernière intervention
30 septembre 2008
- 4 déc. 2005 à 17:21
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
- 4 déc. 2005 à 16:41
3
Merci

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_coq
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
- 4 déc. 2005 à 15:15
0
Merci
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#
*/
Commenter la réponse de cs_coq
Messages postés
137
Date d'inscription
mercredi 12 janvier 2005
Dernière intervention
30 septembre 2008
- 4 déc. 2005 à 15:47
0
Merci
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
Commenter la réponse de edokt
Messages postés
137
Date d'inscription
mercredi 12 janvier 2005
Dernière intervention
30 septembre 2008
- 4 déc. 2005 à 17:21
0
Merci
jet te remercie beacoup
Commenter la réponse de edokt

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.