0

在 c# 中显示表单时,我试图指定父 MDI 表单

所有的例子都建议只使用

FormVariable.Parent = this;

假设您希望始终从父窗口打开表单,这可以正常工作。

我希望能够通过指定名称打开一个表单并将父表单设置为我的 MDI 父表单。

在 VB.net 我用过

Me.MdiParent = TheNameOfMyParentForm

当我在 c# 中尝试类似的东西时

this.MdiParent = CruxMDI();

我明白了

“Crux.CruxMDI”是一种“类型”,但用作“变量”

4

1 回答 1

1

Form.MdiParent必须引用一个具体的实例。所以,也许在父容器中实现一个单例模式(您可能不想允许多个父窗口,对吗?)是个好主意,这样您就可以从任何需要的地方引用它。然后你只需输入:

this.MdiParent = CruxMDI.Instance;

如果您想自动添加此类行为并且它需要在您的应用程序中的许多表单中发生,您可以在创建从 Form 继承的自定义基类时考虑一个选项。这样,您只需指定一次,然后您只需要确保从该基类继承您的新表单,而不是默认表单。

无论哪种方式,您都需要某种机制来引用 MDI 容器的实例。

于 2013-04-15T22:23:59.097 回答