5

私がチームで作業しているアプリケーションのフォームには、メインコンポーネントとしてdatagridviewがあります(サイズの大部分を占めるはずです)が、他のコンポーネントもあります。それらを分割するための水平分割コンテナがありますが、トップパネルをその内容に合わせてサイズ変更する方法を考えていました。残念ながら、splitcontainerのパネルにはAutoSizeプロパティがありません...

これが私たちが必要とするものを示すための2つの画像です:( 出典:mediafire.comimage1

image2
(出典: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 に答える