SplitContainer的面板作为其他表单的MDI父级

我添加了一个带有Splitcontainer的控件。 我想在第二个面板( Panel2 )上放置另一个表单。 但是,无法将全新表单的MDIParent属性设置为Panel2

因此,问题是 – 如何将SplitContainer's面板设置为另一个控件的MDIParent

提前感谢您的线索!

干杯

MDIParent只能是另一个表单。 您需要做的是在子窗体上将TopLevel设置为False。 然后,您可以将它添加到任何控件,就像它是任何其他控件一样(通过将其添加到父控件的Controls集合中)。 但是,它不会像在MDI容器中那样工作(因为您将无法最小化或最大化它)。

如果你想制作Panel-Splitter-MdiClient Form,请参阅c#中的面板和MDI

如果您的意图是使用splitcontainer来加载不同的子表单,这可能会有所帮助。 您可以使用从包含普通WinForm可能具有的所有小部件的面板派生的类,而不是使用WinForms。 要显示它们,只需将它们添加到splitcontainer的Panel2控件集合中。

要记住的一些事件和方法是:

  • subformPanel.ParentChanged(做一些初始化并订阅任何父事件)
  • subformPanel.ParentChanged(做一些清理和取消订阅父事件)
  • Parent.Controls.Remove(破坏subformPanel)