Agir sur un child d'un Mdiparent

Résolu
kikiokiller Messages postés 42 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 31 mai 2009 - 30 avril 2009 à 17:40
kikiokiller Messages postés 42 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 31 mai 2009 - 14 mai 2009 à 21:22
Bonjour à tous,

Je reformule ma question plus simplement.
J'ai un formulaire parents (conteneur) dans lequel j'ouvre 4 fenetres n1, n2, n3 et n4.
Je voudrai fermer la fenetre n3 uniquement!
Le "foreach" est pas mal, mais il me vire toutes les fenetres!
foreach

(
Form child3
in MdiChildren)

{

child3.MdiParent =

this;child3.Close();

}
Pourtant, j'ai bien écris "child3", donc il est nominatif. Je comprends pas pourquoi ca enlève les 4 fenetres.
Merci de votre aide.

2 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
2 mai 2009 à 19:55
Bonjour,

Le fait de nommer une variable locale de la même manière à 2 endroits différents ne va en aucun cas faire en sorte qu'elle fasse référence à la même instance.

Le code fait ici ce que tu lui demandes : il parcourt la liste des formulaires en te fournissant consécutivement les références dans la variable locale "child3".
4 formulaires dans la liste MdiChildren = 4 fois l'exécution du code dans le bloc foreach = 4 appels de "child3.Close();"

Au passage, le code "child3.MdiParent = this;" ne sert visiblement à rien.

/*
coq
MVP Visual C#
CoqBlog
*/
3
kikiokiller Messages postés 42 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 31 mai 2009
14 mai 2009 à 21:22
Thx :)
0
Rejoignez-nous