指定父MDI表单

时间:2013-04-15 22:14:11

标签: c# .net winforms mdi

我在c#

中显示表单时尝试指定父MDI表单

所有示例建议仅使用

FormVariable.Parent = this;

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

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

在VB.net我用过

Me.MdiParent = TheNameOfMyParentForm

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

this.MdiParent = CruxMDI();

我得到了

  

'Crux.CruxMDI'是'类型',但用作'变量'

1 个答案:

答案 0 :(得分:1)

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

this.MdiParent = CruxMDI.Instance;

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

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