我已經創建了一個父窗體併爲此引發了ControlAdded事件。並且還爲此父窗體設置屬性IsMdiContainer爲true。然後,如果我創建一個新的形式稱爲ChildForm1和ChildForm2像下面的代碼,我怎樣才能知道新的MDI表單添加到父母的MDI表單中?
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);
}
}
在這上面的代碼中,增加子窗體到父當調試代碼時形成不引發ControlAdded事件。所以你可以請任何方式來實現這一目標?
[MDI表單檢測與子表單檢測添加或刪除]的可能的副本(http://stackoverflow.com/questions/538204/mdi-form-detecting-with-a-child-form-is-added-或刪除) – BugFinder
到目前爲止,做到這一點的最好方法是讓父母始終創建新的MDI子窗口。加入'public void CreateChild()where T:Form'。你甚至可以把它變成靜態的,因爲只有一個父母。 –