Il s'agit d'une question d'application WinForm dans .net. Il s'agit de la forme MDI.Pourquoi la forme parent MDI a-t-elle réinitialisé l'indice Z des formes enfants lorsqu'elle est focalisée?
J'ai un formulaire MDI (ParentForm), dans lequel je peux créer plusieurs formulaires d'instance de ChildForm. Je crée deux ChildForm, nommés, cf1 et cf2 un par un. Ainsi, cf1 aura un indice Z inférieur à cf2 et cf2 sera au-dessus de cf1.
Puis je passer à une autre forme, ce qui signifie que ParentForm perd son focus dans Windows. Puis je retourne à ParentForm. Lorsque cela se produit, ParentForm place automatiquement cf1 au-dessus de cf2.
Cela se produit également si j'ai trois instances de ChildForm. ParentForm place toujours l'instance créée en premier lorsque je retourne à ParentForm.
Maintenant, la chose intéressante est, il arrive seulement pour ChildForm bien sûr (si c'est le cas pour toute forme enfant, ce sera un bug de .net). Je pense qu'il y a quelque chose qui cloche dans mon ChildForm qui déclenche cela mais je n'ai aucune idée de ce que c'est. Il n'y a pas d'événement onActive pour ChildForm et ParentForm.
Les instances de ChildForm sont créés directement dans ParentForm, exemple de code est:
ParentForm_CreateChildForm(){
var cf = new ChildForm();
cf.MdiParent = this;
cf.Show();
}
Tout le monde est tombé sur cette avant est la bienvenue pour me donner quelques conseils sur ce qui pourrait possibliy va mal.