Public
Class Form1
Private SplitHeight As Int32 = 0
Private IsMoving As Boolean = False
Private Const BUFFERHEIGHT As Int32 = 2
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.BackColor = Color.Red
TopSplitter.Orientation = Orientation.Horizontal
BottomSplitter.Orientation = Orientation.Horizontal
TopSplitter.Dock = DockStyle.None
BottomSplitter.Dock = DockStyle.None
TopSplitter.Location = New Point(0, 0)
RedrawSplitters()
TopSplitter.SplitterDistance = TopSplitter.Height / 2
BottomSplitter.SplitterDistance = BottomSplitter.Height / 2
SplitHeight = Me.ClientRectangle.Height / 2
RedrawSplitters()
Dim top As SplitterPanel = TopSplitter.Panel2
Dim bottom As SplitterPanel = BottomSplitter.Panel1
AddHandler top.MouseMove, AddressOf SetPanelCursor
AddHandler Bottom.MouseMove, AddressOf SetPanelCursor
End Sub
Private Sub RedrawSplitters()
TopSplitter.Size =
New Size(Me.ClientRectangle.Width, SplitHeight - BUFFERHEIGHT)
BottomSplitter.Location =
New Point(0, TopSplitter.Bottom + (BUFFERHEIGHT * 2))
BottomSplitter.Size =
New Size(Me.ClientRectangle.Width, ClientRectangle.Height -BottomSplitter.Top)
'You can choose whatever panel height behavior you want here...
End Sub
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
IsMoving = (e.Y >= TopSplitter.Bottom
AndAlso e.Y <= BottomSplitter.Top)
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
If e.Y >= TopSplitter.Bottom AndAlso e.Y <= BottomSplitter.Top Then
Cursor = Cursors.HSplit
End If
If IsMoving Then
SplitHeight = e.Y
RedrawSplitters()
End If
End Sub
Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
IsMoving =
False
End Sub
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) HandlesMe.Resize
RedrawSplitters()
End Sub
Private Sub SetPanelCursor(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Cursor = Cursors.Default
End Sub
End Class