如何在表单中打开表单?

我有一个父表单,我想在父表单中打开一个子表单。

可以这样做吗? 如果是,请回复我的示例代码。

谢谢 !

以下是执行您想要的代码:

假设button1是父表单。

private void button1_Click(object sender, EventArgs e) { this.IsMdiContainer = true; Form Form2 = new Form(); Form2.MdiParent = this; Form2.Show(); } 

此外,以下链接将为您提供有关您要执行的操作的更多详细信息:

http://www.codeproject.com/KB/cs/mdiformstutorial.aspx

希望这可以帮助…

这取决于你在“forms内”的含义。 如果您需要将子窗体显示为父窗体的控件,我猜您可以尝试使用ParentForm.Controls.Add(new ChildForm()) 。 或者甚至可以通过再次使用包含控件的Controls集合将子表单放在父表单中的现有容器中。

HTH

我注意到这里的所有答案都假定OP打算使用MDI Form架构 ,尽管从未明确说明。

还有另一种方法可以将Form作为另一个Form的’Child’:只需将其’TopLevel属性设置为’False,然后将其’Parent属性设置为另一个Form。

 Form2 f2 = new Form2(); f2.TopLevel = false; f2.Parent = someOtherForm; f2.Show(); 

顺便说一下,我认为“表单中的表单”的整个想法是一个不好的想法 ,而且现在,MDI体系结构被MS推荐。

我相信,更好的做法是创建二级表单,如果你必须在表单中有其他容器,请使用UserControls,Panels等。

告知子表单其MdiParent是当前表单。

MDI:

  form2 frm = new form2 (); frm.MdiParent = this; frm.Show(); 

modal dialog:

 var form = new Form1(); form.Parent = this; form.ShowDialog(); 

MDI孩子:

 var newMDIChild = new Form1(); newMDIChild.MdiParent = this; newMDIChild.Show(); 
 Form child = new Form(); child.MdiParent = this; child.Show(); 

以父表单的forms编写这些代码行并进行检查。

 var childform = new form2(); childform.TopLevel=false; this.Controls.add(childform); childform.Show(); 

这对我有用。