【发布时间】:2017-03-03 06:57:17
【问题描述】:
我已经创建了一个父表单并为此引发了 ControlAdded 事件。并将此父窗体的属性 IsMdiContainer 设置为 true。然后,如果我创建一个名为 ChildForm1 和 ChildForm2 的新表单,如下代码所示,
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 子窗口。添加
public void CreateChild<T>() where T:Form。您甚至可以将其设为静态,因为只有一个父级。
标签: c# winforms windows-forms-designer mdi mdichild