VB.NET - 面板内的表单调整大小

VB.NET - form inside a panel resize

我想不通!我已经研究了停靠、锚定等,但我还没有让它在父表单调整大小时正确调整大小。

编辑:

快速概览:

我有一个主窗体,菜单条停靠在顶部,面板设置为填充。我在菜单条中有链接,可以在面板中打开表单。请参阅下面的代码。我正在努力让面板中的表单随面板调整大小。

我已将面板背景设置为黑色,并将面板内的表单设置为白色。我可以看到面板随表单正确调整大小。面板内的表单保留在其原始位置。如果我以最大化方式启动我的应用程序,然后单击我的菜单条,确保面板内的表单正确调整大小。但是,一旦它最大化,它就不会像面板容器那样随表单一起收缩。

我删除了整个表单上的所有内容,添加了 1 个面板并设置为填写,然后在加载表单时执行以下操作:

Dim f As New Contactdetails With {.TopLevel = False, .AutoSize = True}
    f.Dock = DockStyle.Fill
    Me.Panel2.Controls.Add(f)
    f.Show()

这还是不行。当我最大化我的主窗体时,面板内的窗体不会调整大小,但面板会改变它的背景以监视其大小变化

关闭自动调整大小:

Dim f As New Contactdetails With {.TopLevel = False, .AutoSize = False}
f.Dock = DockStyle.Fill
Me.Panel2.Controls.Add(f)
f.Show()

如果面板中以前的表格不再被使用,那么您应该先处理掉它:

While Me.Panel2.Controls.Count > 0
  Me.Panel2.Controls(0).Dispose()
End While

在子窗体的属性中将 WindowState 设置为 Normal

Me.Dock = DockStyle.

填写子窗体的Load sub