J'ai créé un formulaire parent et déclenche l'événement ControlAdded pour cela. Et définissez également la propriété IsMdiContainer à true pour ce formulaire parent. Et puis si je crée une nouvelle forme appelée ChildForm1 et ChildForm2 comme comme ci-dessous le code,Comment puis-je savoir qu'un nouveau formulaire MDI a été ajouté au formulaire MDI parent?
public partial class ParentForm : Form
{
public ParentForm()
{
InitializeComponent();
this.ControlAdded += Form1_ControlAdded;
this.IsMdiContainer = true;
Form ChildForm1 = new Form();
ChildForm1.MdiParent = this;
ChildForm1.Show();
Form ChildForm2 = new Form();
ChildForm2.MdiParent = this;
ChildForm2.Show();
}
void Form1_ControlAdded(object sender, ControlEventArgs e)
{
MessageBox.Show("Control Added" + e.Control.Name);
}
}
Dans ce code ci-dessus, lorsque déboguer le code lors de l'ajout de formulaires enfants à des formes parent, il ne déclenche l'événement ControlAdded. Alors pouvez-vous suggérer un moyen d'y parvenir?
Un doublon possible de [Détection de formulaire MDI avec un formulaire enfant est ajouté ou supprimé] (http://stackoverflow.com/questions/538204/mdi-form-detecting-with-a-child-form-is-added- or-removed) – BugFinder
De loin, le meilleur moyen de le faire est de laisser le parent toujours être celui qui crée de nouvelles fenêtres enfants MDI. Ajoutez 'public void CreateChild() où T: Formule. Vous pouvez même le rendre statique puisqu'il n'y a qu'un seul parent. –