Mar*_*oDS 5 vb.net autosize flowlayoutpanel splitcontainer
我正在与团队合作的应用程序中的表单具有datagridview作为主要组件(它应占用大部分大小),但还有其他组件.有一个水平拆分容器来拆分它们,但我想知道如何让顶部面板调整其内容.不幸的是,拆分容器中的面板没有AutoSize属性......
这里有两个图像,显示我们所需要的: 此搜索http://www.mediafire.com/conv/8d141b69c63b0d3ac8aebf9129bb77e25ee4a75086cfa6595c4510041fda1fa66g.jpg 图像2 http://www.mediafire.com/conv/56d959d2a9f99b71af16f7ab3eb5833874e8583f7b15bd1df16aafaa7313a7066g.jpg
如您所见,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 中,并在其中添加了一个按钮来添加更多面板。