如何在表单中打开表单?

时间:2011-06-22 04:10:55

标签: c# winforms

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

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

谢谢!

7 个答案:

答案 0 :(得分:11)

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

假设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

希望这会有所帮助......

答案 1 :(得分:6)

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

HTH

答案 2 :(得分:5)

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

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

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

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

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

答案 3 :(得分:3)

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

MDI:

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

答案 4 :(得分:2)

模态对话框:

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

MDI孩子:

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

答案 5 :(得分:0)

Form child = new Form();
child.MdiParent = this;
child.Show();

以父表格写下这些代码行并检查。

答案 6 :(得分:-2)

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

这适合我。