在c#中制作MDI Windows窗体应用程序我试图让mdi子窗体在单个实例中打开。我在一个新项目的button_click事件中使用了这个示例代码,仅用于测试目的,它在那里工作正常,但是当我在我的主项目中实现此代码时,它什么都不做。我提供了与测试项目完全相同的条件,但它不起作用。我只是不明白为什么。Mdi子窗体单实例
两种表格都具有相同的MDI父级。 Form1加载MDI父项。
在Form1的按钮单击事件开扩窗体2:
private void button1_Click(object sender, EventArgs e)
{
if (System.Windows.Forms.Application.OpenForms["Form2"] as Form2 == null)
{
Form2 F2 = new Form2();
F2.MdiParent = this.MdiParent;
F2.Show();
}
else
{
Form2 F2 = (Form2)Application.OpenForms["Form2"];
F2.Focus();
}
}
下面是更多的一些信息:
MDI父是该项目的启动形态。
的MDI父窗体加载如下:
private void MDI_Load(object sender, EventArgs e)
{
Form1 F1 = new Form1();
F1.MdiParent = this;
F1.Show();
}
这实际上做的工作。非常感谢你的队友。但我仍然不明白为什么在某些情况下不需要这样做。 Form2 F2 = new Form2(); F2.MdiParent = this.MdiParent; F2.Show(); F2.Name =“Form2”; – Damian