ボタンやテキスト・ボックスなど,フォームに配置するコントロールのレイアウトを,フォームの大きさに合わせて自動的に変わるようにする。FlowLayoutPanelコントロールは,この上に配置された子コントロールを水平または垂直の方向に並べて配置する。個々のコントロールを文字に見立てると,イメージがつかみやすいだろう。横書きの文書では,文字が左に詰められて,行の右端まで文字が詰まると,次の行の右端から文字が並べられる。縦書きの場合は,右上から下に向けて始まって,最も下まで進むと,次の列の一番上から始まる。FlowLayoutPanelコントロール上に並べた子コントロールも同様に配置される(図1)。

図1a 図1b
図1●FlowLayoutPanelコントロールを使用した例
フォームの大きさを変えると,コントロールの配置が変化する

 FlowLayoutPanelコントロールでは,ある列から次の列に折り返せるだけでなく,内容を折り返さずにクリップすることもできる。並べる方向は,FlowDirectionプロパティの値で決める。FlowLayoutPanelコントロールの内容を折り返すか,またはクリップするかは,WrapContentsプロパティに指定する。

 AutoSizeプロパティをTrueに設定すると,コントロール上に配置されたコントロールなどの内容によって,FlowLayoutPanelコントロールの大きさが自動的に調整される。FlowLayoutPanelコントロール上に配置されたコントロールでFlowBreakプロパティをTrueに設定すると,フロー方向でのレイアウトを中断し,次の行または列に折り返す。

 FlowLayoutPanelコントロールを入れ子構造にしたり,一般のPanelコントロールやSplitContainerコントロールなどをFlowLayoutPanelコントロール上に配置することもでき,ユーザーが変更したフォーム形に合わせて使いやすいように変化する高度なレイアウトも可能である。

 

サンプルコードを見る


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

AutoScroll
FlowLayoutPanelコントロール上で,境界の外にある子コントロールに,ユーザーがスクロールできるかどうかを示す値を取得または設定する。

AutoSize
FlowLayoutPanelコントロール上に配置された子コントロールの内容によって大きさを自動的に変更する。

BackColor
コントロールの背景色。

BackgroundImage
コントロールに表示する背景画像。

BackgroundImageLayout
背景画像のレイアウト。

BorderStyle
コントロールの境界線スタイル。

Controls
コントロール内に格納されているコントロールのコレクション。

Cursor
マウス・ポインタがFlowLayoutPanelコントロールの上にあるときに表示されるカーソル形状。

Dock
コントロールの境界のうち,親コントロールにドッキングする境界を取得または設定する。また,コントロールの大きさが親コントロール内でどのように変化するかを決定する。

Enabled
コントロールが利用可能かどうかを示す。

FlowDirection
FlowLayoutPanelコントロールのフロー方向。

Height
コントロールの高さ。

Left
コントロールの左端とコンテナのクライアント領域の左端の距離。

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

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

Top
コントロールの上端とコンテナのクライアント領域の上端の距離。

Visible
コントロールが表示されているかどうかを示す。

Width
コントロールの幅。

主なソメッド
SetFlowBreak
FlowLayoutPanelコントロールのフロー中断設定を設定,または解除する。

Refresh
強制的に,コントロールがクライアント領域を無効化し,直後にそのコントロール自体とその子コントロールを再描画する。

主なイベント
SizeChanged
Sizeプロパティの値が変更された場合に発生する。