5

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

这里有两张图片来展示我们需要什么:( 来源:mediafire.com图像1

图2
(来源:mediafire.com

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

4

1 回答 1

3

我假设您的意思是基于您的图像的“水平”拆分容器。

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 中的一个面板,并在其中添加了一个按钮以添加更多面板。

于 2012-04-26T15:04:01.330 回答