我试图在2012中对MDI应用程序进行一些实践,但我似乎做错了什么。
我创建了一个新的IsMdiContainer WindowsFormsApplication项目,并将第一个窗体的属性更改为True。然后,通过右键单击解决方案资源管理器中的项目并选择Add Windows 添加一个新表单。
我试图将MdiParent属性form2设置为MDI容器表单,但似乎form2没有MdiParent属性。以下是按字母顺序排列的form2的属性。

当然,我可以以这样的方式打开form2作为子表单:
form2 newMDIChild = new form2();
newMDIChild.MdiParent = this;
newMDIChild.Show();我只是想知道为什么表单没有MDIParent属性。根据此页,子窗体具有MdiParent属性。
任何帮助都是非常感谢的。
发布于 2013-07-16 01:51:07
您这样做是正确的,实例化新表单并在那里分配MdiParent。确实存在这样一个属性,在您的代码中您正在使用它:
newMDIChild.MdiParent = this;这是非常好的,也是正常的做法。
现在,您要指出的是,设计人员没有显示它,这也是正确的。这并不意味着该属性不存在(它确实存在,您实际上正在使用它!)为什么它不在designer属性表中是另一个历史,完全不相关,但我认为这与这样一个事实有关,即在设计时正确设置MdiParent是困难的,如果不是不可能的话。考虑一下,它必须包含另一个表单的实例(将它的IsMdiContainer设置为true)。在设计时,您没有任何实例,因为它们是在程序运行时创建的。您不可能预先设置它,因为通常您必须将另一种形式传递给它,这是您在设计时所不知道的。
https://stackoverflow.com/questions/17666665
复制相似问题