2009-12-31 89 views

回答

0

这样做(更明智)的更简单的方法就是让你的主形成一个MDI容器。您可以在设计器中通过在主窗体的属性窗口中将IsMdiContainer设置为true来设置它。要将窗体添加到MDI父窗体,只需将新窗体的MdiParent属性设置为主窗体的实例。例如,假设这个代码是在MDI窗体上的按钮:

void button1_Click(object sender, EventArgs e) 
{ 
    Form newForm = new Form(); // obviously you'd use your own Form class here 

    newForm.MdiParent = this; 

    newForm.Show(); 
} 

但是,你可以添加一个新形式的存在形式的孩子,它会表现得就像任何其他的控制,但在表单显示之前,必须将TopLevel属性设置为false。我们的代码是这样的:

void button1_Click(object sender, EventArgs e) 
{ 
    Form newForm = new Form(); // obviously you'd use your own Form class here 

    newForm.TopLevel = false; 
    newForm.Parent = this; 

    newForm.Show(); 
} 

的MDI的方法是什么一般建议,主要是因为这正是该功能的目的是要做到:有一个管理零个或多个子窗体的容器形式。

+0

有没有办法做到这一点W/O编码?在中,它是WinForm上的一个属性吗? – yeahumok 2009-12-31 16:23:50

+0

@yeahumok:是的。在Adam的回答的第一段中解释了这一点(从第一句开始“你可以”开始)。 – 2009-12-31 17:51:52

+0

TopLevel和IsMdiContainer属性可以在设计器中设置,但其他代码将不得不保留。 – 2009-12-31 17:55:02