SplitContainerコントロールは,FormやPanelコントロールなどの領域を,2つのPanelコントロールに分割すると同時に,その境界をアプリケーション実行時に移動できるようにする。SplitContainerコントロールによって分割された領域上に,TextBoxコントロールや,PictureBoxコントロールなどを配置して,それぞれのコントロールのDockプロパティをFillにすることで,アプリケーション実行時に,TextBoxコントロールや,PictureBoxコントロールなどの大きさが変更できるようになる。

 ユーザーが分割線上にマウス・ポインタを置くと,カーソルの形が変わり,SplitContainerコントロール内のコントロールの大きさを変更できることが示される。

 SplitContainerコントロールを使うと,エクスプローラに類似した,データの階層構造を示して情報を表示するアプリケーションの画面を容易に作れる。それにはまず,SplitContainerコントロールをFormに追加して,DockプロパティをFillに設定する。次に,TreeViewコントロールをSplitContainerコントロールの左側のPanelコントロールに追加して,DockプロパティをFillに設定する。さらにListViewコントロールを右側のPanelコントロールに追加して,DockプロパティをFillに設定する。これで,実行時にユーザーが分割線を使用して両方のコントロールの幅を変更できるようになる。

 また,縦の分割と横の分割を組み合わせることでOutLookやOutLook Expressのような複数ペインに分かれた画面も作れる。まず,SplitContainerコントロールをFormに配置して,DockプロパティをFillに設定する。次にSplitContainerコントロールの右側のPanel内に,もう1つSplitContainerコントロールを配置して,DockプロパティをFillに設定する。ここでOrientationプロパティをHorizontalに変更する。これで,右側の領域は水平の境界で分割され,縦に2つの領域が作成される。それぞれの境界はアプリケーションの実行時に位置を変えられる。

 境界の位置が変更されないようにするには,FixedPanelプロパティを使用する。SplitterDistanceを使用すると,フォーム上の分割線の開始位置を指定できる。また,SplitterIncrementを使用すると,分割線が1度に移動するピクセル数を指定できる。SplitterIncrementの既定値は1ピクセルになっている。

 Panel1MinSizeプロパティおよびPanel2MinSizeプロパティを使用すると,分割線とSplitContainerパネルの外端との最短距離を指定できる。パネルの既定の最小サイズは25ピクセル。

 BorderStyleプロパティを使用すると,SplitContainerの境界線スタイルを指定して,SplitContainerに追加するコントロールの境界線スタイルと連動させることができる。

図1
(図1)

サンプルコードを見る


名前空間
System.Windows.Forms
対応バージョン
.NET Framework 2.0
主なプロパティ
Anchor
SplitContainerコントロールを貼り付けたフォームまたはパネルなど,親コントロールの大きさが変更されたときに,指定した方向に関してコンテナの端からSplitContainerコントロールの端までの距離を一定に保つ。

Bounds
クライアント以外の要素を含むSplitContainerコントロールの,親コントロールに対する相対的なサイズおよび位置(ピクセル単位)。

Dock
SplitContainerコントロールを貼り付けたフォームまたはパネルなどの親コントロールの,どの辺にドッキングさせるのかを設定する。これによって大きさがどのように変化するか決まる。

Enabled
SplitContainerコントロールを利用可能または利用不可能(グレー・アウト)にする。

FixedPanel
SplitContainerコントロール全体のサイズが変更された際にサイズ変更されないパネルを指定する。

Height
SplitContainerコントロールの高さ。

IsSplitterFixed
分割線を固定するか移動できるようにするかを示す。

Left
SplitContainerコントロールの左端とコンテナのクライアント領域の左端の間の距離(ピクセル単位)を取得または設定する。

Location
コンテナの左上隅に対するSplitContainerコントロールの左上隅の相対座標。

Orientation
SplitContainerコントロールの向き。

Panel1
Orientationに応じて,SplitContainerコントロールの左側または上側のパネル。

Panel1MinSize
分割線からPanel1の左端または上端までの最短距離を,ピクセル単位で取得または設定する。

Panel2
Orientationに応じて,SplitContainerコントロールの右側または下側のパネル。

Panel2MinSize
分割線からPanel2の右端または下端までの最短距離を,ピクセル単位で取得または設定する。

Size
SplitContainerコントロールの高さと幅。

SplitterDistance
SplitContainerコントロールの左端または上端から見た分割線の位置を,ピクセル単位で取得または設定する。

SplitterIncrement
分割線の移動単位をピクセル単位で表した値。

SplitterRectangle
SplitContainerコントロールを基準とした相対的な分割線のサイズと位置。

SplitterWidth
分割線の幅をピクセル単位で取得または設定する。

Top
SplitContainerコントロールの上端とコンテナのクライアント領域の上端の距離(ピクセル単位)。

Visible
このSplitContainerコントロールを画面に表示するかどうかを示す。Falseのときは表示されないので,このSplitContainerコントロールは無効になる。

Width
SplitContainerコントロールの幅。

主なメソッド
Hide
SplitContainerコントロールをユーザーに対して非表示にする。

Refresh
SplitContainerコントロールとその子コントロールを再描画する。

ResumeLayout
通常のレイアウトロジックを再開する。

SetBounds
SplitContainerコントロールの範囲を設定する。

Show
SplitContainerコントロールをユーザーに対して表示する。

SuspendLayout
SplitContainerコントロールのレイアウト・ロジックを一時的に中断する。

主なイベント
SplitterMoved
分割SplitContainerコントロールが移動されると発生する。