【发布时间】:2014-10-28 20:49:43
【问题描述】:
在我的应用程序中,我有 4 个表单,form1 是一个 mdi 容器,其余表单是子容器, 在 form1 中,我在其加载事件中打开所有子表单。在子form2中我有一个按钮将切换到childform3。我的问题是如何从childform2中的按钮显示childform3(已经打开)
form1:
Form2 formchild1;
Form3 formchild2;
Form4 formchild3;
private void Form1_Load(object sender, EventArgs e)
{
if (formchild2 == null)
{
formchild2 = new Form3();
}
formchild2.MdiParent = this;
formchild2.Dock = DockStyle.Fill;
formchild2.Show();
//formchild2.BringToFront();
if (formchild3 == null)
{
formchild3 = new Form4();
}
formchild3.MdiParent = this;
formchild3.Dock = DockStyle.Fill;
formchild3.Show();
if (formchild1 == null)
{
formchild1 = new Form2();
}
formchild1.MdiParent = this;
formchild1.Show();
formchild1.Dock = DockStyle.Fill;
formchild1.BringToFront();
}
form2:
Form3 formchild2;
private void button1_Click(object sender, EventArgs e)
{
//what i have to write hare..
//formchild2 = new Form3();
//formchild2.MdiParent = this.ParentForm;
//formchild2.Dock = DockStyle.Fill;
//formchild2.Show();
//formchild2.BringToFront();
}
【问题讨论】:
-
如果我在按钮中初始化新实例,它将在每次按钮单击时创建新的表单实例。
-
让一个孩子意识到另一个孩子是一种非常不确定的做法。将此代码放在 MDI 父窗体中,它必然已经知道您的所有子窗体。只需从孩子那里调用它,例如 ((MyMDIParent)this.MdiParent).FooBar()。
-
我没有得到你的解释请多发一些代码谢谢