2013-07-16 57 views
1

我想在Microsoft Visual Studio 2012中对MDI应用程序做一些实践,但似乎我做错了什么。MdiParent属性的子窗体

我做了一个新的Windows窗体应用程序项目,改变了第一种形式的的IsMdiContainer属性。然后,我通过右键单击解决方案资源管理器中的项目并选择Add - New Item - Windows Form来添加新表单。

我正在尝试设置的MdiParent窗口2到MDI集装箱形式的财产,但似乎窗口2没有的MdiParent财产。 以下是按字母顺序排序的form2的属性。

enter image description here

当然我可以打开窗口2小时候形成这样:

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

我很奇怪为什么形式没有的MdiParent财产。 根据this page子窗体有一个MdiParent财产。

任何形式的帮助非常感谢。

回答

2

你做得对,实例化新表格并在那里分配MdiParent。真的有这样的属性,并在您的代码中使用它:

newMDIChild.MdiParent = this; 

这是完全正常的,这是正常的做法。

现在,你指的是设计师不显示它,这也是事实。这并不意味着该属性不存在(它确实存在,而且您实际上正在使用它!)。为什么它不在设计师的属性表中是另外一个历史,完全不相关,但我认为它与设计时难以设置MdiParent(如果不是不可能的话)有关。如果你仔细想想,它必须包含另一个表单的实例(它的IsMdiContainer设置为true)。在设计时,您没有任何任何事物,因为它们是在您的程序运行时创建的。您无法事先设置它,因为您通常必须传递另一种形式,这在设计时是无法知道的。

+0

感谢您的解释 – Tera

相关问题