1

我正在尝试对 Microsoft Visual Studio 2012 中的 MDI 应用程序做一些练习,但似乎我做错了什么。

我创建了一个新的Windows 窗体应用程序项目并将第一个窗体的IsMdiContainer属性更改为True。然后我通过右键单击解决方案资源管理器中的项目并选择Add - New Item - Windows Form添加一个新表单。

我正在尝试将form2 的MdiParent属性设置为 MDI Container 表单,但似乎 form2 没有MdiParent属性。这是按字母顺序排列的 form2 的属性。

在此处输入图像描述

当然,我可以通过这种方式将 form2 作为子表单打开:

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

我只是想知道为什么表单没有MDIParent属性。根据此页面 ,子表单具有MdiParent属性。

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

4

1 回答 1

2

你做对了,实例化新表单并MdiParent在那里分配。真的有这样一个属性,在你的代码中你正在使用它:

newMDIChild.MdiParent = this;

这完全没问题,而且是正常的做法。

现在,您所指的是设计师没有展示它,这也是正确的。这并不意味着该属性不存在(它确实存在,而且您实际上正在使用它!)。MdiParent为什么它不在设计器属性表中是另一段历史,完全无关紧要,但我认为这与在设计时正确设置即使不是不可能也很困难的事实有关。如果您考虑一下,它必须包含另一个表单的实例(IsMdiContainer设置为true)。在设计时,您没有任何实例,因为它们是在程序运行时创建的。您无法预先设置它,因为您通常必须将另一个表单传递给它,而您在设计时无法知道。

于 2013-07-16T01:51:07.910 回答