我正在与一个团队合作的应用程序中的表单有一个 datagridview 作为主要组件(它应该占据大部分大小),但还有其他组件。有一个水平拆分容器来拆分它们,但我想知道如何使顶部面板调整其内容的大小。不幸的是,拆分容器中的面板没有AutoSize
属性......
这里有两张图片来展示我们需要什么:(
来源:mediafire.com)
(来源:mediafire.com)
如您所见,splitcontainer 的顶部面板应调整为其内容的大小。有什么办法可以做到这一点?
我正在与一个团队合作的应用程序中的表单有一个 datagridview 作为主要组件(它应该占据大部分大小),但还有其他组件。有一个水平拆分容器来拆分它们,但我想知道如何使顶部面板调整其内容的大小。不幸的是,拆分容器中的面板没有AutoSize
属性......
这里有两张图片来展示我们需要什么:(
来源:mediafire.com)
(来源:mediafire.com)
如您所见,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 中的一个面板,并在其中添加了一个按钮以添加更多面板。