我假设你的意思是根据你的图像“水平”拆分容器。
你可以尝试使用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是面板I置于SplitContainer中的Panel1的,并在其添加更多的面板增加了一个按钮。
这将工作,但我希望能自动做到这一点。在上面板中只有一个控件,一个用户控件。该控件在其中有一个流程布局面板,我希望splitcontainer顶部面板将其大小调整为usercontrol中的流程布局面板的大小......无论如何感谢您的答案。 – MarioDS 2012-04-26 16:05:03
@MarioDeSchaepmeester如果FLP在UC中,那么你显然需要让UC调整自己的大小(听起来就是这样)。只需勾选UC的调整大小事件来设置“SplitterDistance” – LarsTech 2012-04-26 16:17:14
哦,是的,我会尝试,谢谢。 – MarioDS 2012-04-26 16:36:56