Splitcontainer flowlayoutpanel或自动调整大小的面板(VB.NET)

Splitcontainer flowlayoutpanel或自动调整大小的面板(VB.NET),vb.net,autosize,flowlayoutpanel,splitcontainer,Vb.net,Autosize,Flowlayoutpanel,Splitcontainer,我正在与一个团队一起工作的应用程序中的表单有一个datagridview作为主要组件(它应该占据大部分大小),但还有其他组件。有一个水平拆分容器来拆分它们,但我想知道如何使顶部面板调整大小以适应其内容。不幸的是,splitcontainer中的面板没有自动调整大小的属性 以下是两张图片,展示我们需要的: (来源:) (来源:) 如您所见,splitcontainer的顶部面板应根据其内容的大小进行调整。有什么办法可以做到这一点吗?我想你指的是基于图像的“水平”分割容器 您可以尝试使用顶部面板

我正在与一个团队一起工作的应用程序中的表单有一个datagridview作为主要组件(它应该占据大部分大小),但还有其他组件。有一个水平拆分容器来拆分它们,但我想知道如何使顶部面板调整大小以适应其内容。不幸的是,splitcontainer中的面板没有自动调整大小的属性

以下是两张图片,展示我们需要的:
(来源:)


(来源:)

如您所见,splitcontainer的顶部面板应根据其内容的大小进行调整。有什么办法可以做到这一点吗?

我想你指的是基于图像的“水平”分割容器

您可以尝试使用顶部面板的
ControlAdded
事件手动实现这一点:

Public Class Form1

  Public Sub New()
    InitializeComponent()
  End Sub

  Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
    SplitContainer1.SplitterDistance = SmallPanel.Height
  End Sub

  Private Sub SplitContainer1_Panel1_ControlAdded(ByVal sender As Object, ByVal e As ControlEventArgs) Handles SplitContainer1.Panel1.ControlAdded
    SplitContainer1.SplitterDistance += e.Control.Height
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim addPanel As New Panel
    addPanel.BorderStyle = BorderStyle.FixedSingle
    addPanel.Size = New Size(SplitContainer1.Panel1.ClientSize.Width, 100)
    addPanel.Location = New Point(0, SplitContainer1.SplitterDistance)
    addPanel.Anchor = AnchorStyles.Left Or AnchorStyles.Top Or AnchorStyles.Right
    SplitContainer1.Panel1.Controls.Add(addPanel)
  End Sub

End Class

SmallPanel是我放在SplitContainer的Panel1中的一个面板,并在面板中添加了一个按钮以添加更多面板。

这会起作用,但我希望它能自动完成。在上面的面板中实际上只有一个控件,一个usercontrol。该控件中有一个flowlayout面板,我希望splitcontainer顶部面板将其大小调整为usercontrol中flowlayout面板的大小。。。不管怎样,谢谢你的回答。@MarioDeSchaepmeester如果FLP在UC中,那么你显然需要让UC自己调整大小(听起来就是这样)。只需挂接UC的resize事件即可设置拆分距离