你可能想使用一個TableLayoutPanel代替:
Private WithEvents tlp As New TableLayoutPanel
Public Sub New()
InitializeComponent()
tlp.Location = New Point(150, 16)
tlp.Size = New Size(Me.ClientSize.Width - 166, Me.ClientSize.Height - 32)
tlp.Anchor = AnchorStyles.Left Or AnchorStyles.Top Or
AnchorStyles.Right Or AnchorStyles.Bottom
tlp.ColumnCount = 1
tlp.RowCount = 3
tlp.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 100))
tlp.RowStyles.Add(New RowStyle(SizeType.Percent, 50))
tlp.RowStyles.Add(New RowStyle(SizeType.Absolute, 32))
tlp.RowStyles.Add(New RowStyle(SizeType.Percent, 50))
tlp.Controls.Add(New RichTextBox With {.Dock = DockStyle.Fill}, 0, 0)
tlp.Controls.Add(New RichTextBox With {.Dock = DockStyle.Fill}, 0, 1)
tlp.Controls.Add(New RichTextBox With {.Dock = DockStyle.Fill}, 0, 2)
Me.Controls.Add(tlp)
End Sub
然後隱藏中間行,切換高度:
If tlp.RowStyles(1).Height = 0 Then
tlp.GetControlFromPosition(0, 1).Enabled = True
tlp.RowStyles(1).Height = 32
Else
tlp.GetControlFromPosition(0, 1).Enabled = False
tlp.RowStyles(1).Height = 0
End If
我建議你只是使用標準面板,自己做數學。或者也許使用分離器控制? – rheitzman