”以前のバージョンと互換性を維持するためだけに用意されて”いる Splitter です。
ぐはぁ。
SplitContainer と似たような事をやろうとすると結構めんどくさいー
もっと本格的にやるなら、カスタムコントロール化して Panel やら Orientation やらを
包含したクラスを作る方がいいんでしょうけど、SplitContainer があるのに極めて意味がないのでやめました。
■参考文献
Splitter クラス
■実行画像
めんどくさすぎる。。。もう Splitter には戻れない。。。

Public Class SplitterTest
Private m_splitter As Splitter
Private m_panel1 As Panel
Private m_panel2 As Panel
Private m_splitterOrientation As Orientation
Private Sub SplitterTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Controls.Clear()
Me.m_splitterOrientation = Orientation.Vertical
Me.m_panel2 = New Panel()
Me.Controls.Add(Me.m_panel2)
With Me.m_panel2
.BackColor = Color.LightBlue
.Dock = DockStyle.Fill
End With
Me.m_splitter = New Splitter()
Me.Controls.Add(Me.m_splitter)
With Me.m_splitter
.BorderStyle = BorderStyle.Fixed3D
' 左側の最少サイズ
.MinExtra = 100
' 右側の最少サイズ
.MinSize = 50
.Dock = DockStyle.Left
' イベント
AddHandler .SplitterMoved, AddressOf Splitter_MovedOrMoving
AddHandler .SplitterMoving, AddressOf Splitter_MovedOrMoving
End With
Me.m_panel1 = New Panel()
Me.Controls.Add(Me.m_panel1)
With Me.m_panel1
.BackColor = Color.LightYellow
.Dock = DockStyle.Left
End With
' 分割線の位置
Me.m_splitter.SplitPosition = 100
' 左側に ComboBox
' BorderStyle
Dim borderStyleCombo As ComboBox = New ComboBox()
Me.m_panel1.Controls.Add(borderStyleCombo)
With borderStyleCombo
.Dock = DockStyle.Top
.DropDownStyle = ComboBoxStyle.DropDownList
.Items.Add(BorderStyle.Fixed3D)
.Items.Add(BorderStyle.FixedSingle)
.Items.Add(BorderStyle.None)
.SelectedItem = Me.m_splitter.BorderStyle
AddHandler .SelectedIndexChanged, AddressOf borderStyleCombo_SelectedIndexChanged
End With
' Orientation
Dim orientationCombo As ComboBox = New ComboBox()
Me.m_panel1.Controls.Add(orientationCombo)
With orientationCombo
.Dock = DockStyle.Top
.DropDownStyle = ComboBoxStyle.DropDownList
.Items.Add(Orientation.Vertical)
.Items.Add(Orientation.Horizontal)
.SelectedItem = Me.m_splitterOrientation
AddHandler .SelectedIndexChanged, AddressOf orientationCombo_SelectedIndexChanged
End With
' 右側に 中さん
Dim nakasan As PictureBox = New PictureBox()
Me.m_panel2.Controls.Add(nakasan)
With nakasan
.Image = My.Resources.中さん
.Dock = DockStyle.Fill
.SizeMode = PictureBoxSizeMode.AutoSize
End With
End Sub
Private Sub borderStyleCombo_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim combo As ComboBox = DirectCast(sender, ComboBox)
Me.m_splitter.BorderStyle = DirectCast(combo.SelectedItem, BorderStyle)
End Sub
Private Sub orientationCombo_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim nowOrientation As Orientation = Me.m_splitterOrientation
Me.m_splitterOrientation = DirectCast(IIf(nowOrientation = Orientation.Horizontal, _
Orientation.Vertical, _
Orientation.Horizontal), Orientation)
If Me.m_splitterOrientation = Orientation.Horizontal Then
' 上下分割
Me.m_panel1.Dock = DockStyle.Top
Me.m_splitter.Dock = DockStyle.Top
Else
' 左右分割
Me.m_panel1.Dock = DockStyle.Left
Me.m_splitter.Dock = DockStyle.Left
End If
Me.m_splitter.SplitPosition = 100
End Sub
Private Sub Splitter_MovedOrMoving(ByVal sender As Object, ByVal e As SplitterEventArgs)
System.Diagnostics.Debug.WriteLine("左上隅 X 座標:" & e.SplitX.ToString())
System.Diagnostics.Debug.WriteLine("左上隅 Y 座標:" & e.SplitY.ToString())
System.Diagnostics.Debug.WriteLine("マウスポインタ X 座標:" & e.X.ToString())
System.Diagnostics.Debug.WriteLine("マウスポインタ Y 座標:" & e.Y.ToString())
End Sub
End Class