在不使用 MDI 的情况下在另一个窗体中形成窗体

Form inside another form without using MDI

目标:在 Form2(蓝色)内创建 Form3(红色),它是 Form1(黄色)的 MDI 子级

Form3 有自己的代码和设计,在某些情况下我需要它成为 Form2 的一部分,但并非总是如此。

我可以使 Form2(蓝色)的 Form3(红色)MDI 子级,但问题是 Form2(蓝色)已经是 MDI 子级 的 Form1(黄色)。

我该如何解决这个问题?

每个控件都有一个 属性 控件,您可以向其添加控件,但是如果您尝试使用表单来执行此操作,则会出现异常

Top-level control cannot be added to a control.

即使表单:控件

但是您可以只用一个包含所有窗体控件的面板来填充一个控件,然后将该面板添加到另一个控件中。

' In Form1, Panel1 is defined, you will put the other panel in here
' In Form2, Panel1 is defined, this is the other panel
Me.Panel1.Controls.Add((New Form2).Panel1)