エクスポート (0) 印刷
すべて展開

TableLayoutPanel クラス

行と列で構成されるグリッドに内容を動的にレイアウトするパネルを表します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
public class TableLayoutPanel : Panel, IExtenderProvider
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class TableLayoutPanel extends Panel implements IExtenderProvider
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
public class TableLayoutPanel extends Panel implements IExtenderProvider
適用できません。

TableLayoutPanel コントロールは、内容をグリッド内に配置します。レイアウトはデザイン時と実行時の両方に行われるため、アプリケーション環境の変更に合わせて動的に変更できます。これにより、パネル内のコントロールは比例的にサイズを変更できるため、親コントロールのサイズ変更、ローカリゼーションによるテキスト長の変更などの変更に合わせることができます。

TableLayoutPanel のその他のインスタンスを含む Windows フォーム コントロールは、TableLayoutPanel コントロールの子になります。これにより、実行時の変更に合わせた高度なレイアウトを構築できます。

TableLayoutPanel コントロールは、RowCountColumnCount、および GrowStyle の各プロパティの値に応じて、新しいコントロールが追加されたときにこれらを収容するように拡張できます。RowCount プロパティまたは ColumnCount プロパティの値を 0 に設定すると、TableLayoutPanel が対応する方向で非バインドになることを指定します。

TableLayoutPanel コントロールが子コントロールでいっぱいになった後、拡張の方向 (水平または垂直) を制御することもできます。既定では、TableLayoutPanel コントロールは行の追加によって下方向に拡張します。

既定の動作と異なる動作をする行と列を使用する場合、RowStyles プロパティおよび ColumnStyles プロパティを使用して、行と列のプロパティを制御できます。行または列のプロパティを個別に設定できます。

TableLayoutPanel コントロールは、CellColumnRowColumnSpan、および RowSpan の各プロパティを子コントロールに追加します。

子コントロールで ColumnSpan プロパティまたは RowSpan プロパティを設定すると、TableLayoutPanel コントロールのセルをマージできます。

子コントロールのドッキング動作は、その他のコンテナ コントロールと同じです。

TableLayoutPanel の子コントロールの固定動作は、他のコンテナ コントロールの動作とは異なります。子コントロールの Anchor プロパティの値が Left または Right に設定されている場合、コントロールは、セルの左境界線または右境界線に対して、コントロールの Margin プロパティとパネルの Padding プロパティを合計した位置に配置されます。Left 値と Right 値の両方が設定されている場合、コントロールのサイズは、Margin 値と Padding 値を考慮して、セルの幅に合わせて変更されます。TopBottom の固定に関する動作も同様です。詳細については、「方法 : TableLayoutPanel コントロールで子コントロールを固定およびドッキングする」を参照してください。

子コントロールで他のコンテナ コントロールの既定の固定動作を模倣する必要がある場合は、コントロールの境界線とセルの境界線の間の距離が一定になるように、Margin プロパティおよび Padding プロパティを調整できます。

実行時に、子コントロールの Column プロパティと Row プロパティの値を -1 に設定すると、コントロールが TableLayoutPanel コントロール内の最初の空のセルに移動します。空のセルは、左から右、上から下の順に行われる検索で選択されます。この順序はカルチャに応じて異なるため、右から左 (RTL) のレイアウトで正しく動作します。デザイン時は、これらのプロパティを -1 に設定しても、子コントロールは移動しません。

メモメモ :

TableLayoutPanel コントロールのレイアウト計算に関係するのは、Visible プロパティが true に設定されているコントロールだけです。

トピック場所
チュートリアル : TableLayoutPanel を使用した Windows フォーム上のコントロールの配置Windows フォーム コントロール
方法 : TableLayoutPanel コントロール内でコントロールを配置して伸縮するWindows フォーム コントロール
方法 : TableLayoutPanel コントロールの行と列を拡大するWindows フォーム コントロール
方法 : TableLayoutPanel コントロールの列と行を編集するWindows フォーム コントロール
方法 : TableLayoutPanel コントロール内でコントロールを配置して伸縮するWindows フォーム コントロール
方法 : TableLayoutPanel コントロールの行と列を拡大するWindows フォーム コントロール
方法 : TableLayoutPanel コントロールの列と行を編集するWindows フォーム コントロール
チュートリアル : TableLayoutPanel を使用した Windows フォーム上のコントロールの配置Windows フォーム コントロール
方法 : TableLayoutPanel コントロール内でコントロールを配置して伸縮するWindows フォーム コントロール
方法 : TableLayoutPanel コントロールの行と列を拡大するWindows フォーム コントロール
方法 : TableLayoutPanel コントロールの列と行を編集するWindows フォーム コントロール
チュートリアル : TableLayoutPanel を使用した Windows フォーム上のコントロールの配置Windows フォーム コントロール
方法 : TableLayoutPanel コントロール内でコントロールを配置して伸縮するdv_mclictl
方法 : TableLayoutPanel コントロールの行と列を拡大するdv_mclictl
方法 : TableLayoutPanel コントロールの列と行を編集するdv_mclictl
チュートリアル : TableLayoutPanel を使用した Windows フォーム上のコントロールの配置dv_mclictl
方法 : TableLayoutPanel コントロール内でコントロールを配置して伸縮するdv_mclictl
方法 : TableLayoutPanel コントロールの行と列を拡大するdv_mclictl
方法 : TableLayoutPanel コントロールの列と行を編集するdv_mclictl
チュートリアル : TableLayoutPanel を使用した Windows フォーム上のコントロールの配置dv_mclictl

OnCellPaint メソッドをオーバーライドして、セルのカスタムの外観を作成する方法を次のコード例に示します。TableLayoutPanel コントロールを使用して、サイズ変更に合わせたレイアウトを作成する例については、「TableLayoutPanel コントロールのサンプル」を参照してください。

public class DemoTableLayoutPanel : TableLayoutPanel
{
	protected override void OnCellPaint(TableLayoutCellPaintEventArgs e)
	{
		base.OnCellPaint(e);

        Control c = this.GetControlFromPosition(e.Column, e.Row);

        if ( c != null )
        {
            Graphics g = e.Graphics;

            g.DrawRectangle(
				Pens.Red, 
				e.CellBounds.Location.X+1,
				e.CellBounds.Location.Y + 1,
				e.CellBounds.Width - 2, e.CellBounds.Height - 2);

			g.FillRectangle(
				Brushes.Blue, 
				e.CellBounds.Location.X + 1, 
				e.CellBounds.Location.Y + 1, 
				e.CellBounds.Width - 2, 
				e.CellBounds.Height - 2);
        };
	}
    
}

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
         System.Windows.Forms.ScrollableControl
           System.Windows.Forms.Panel
            System.Windows.Forms.TableLayoutPanel
               System.ComponentModel.Design.ByteViewer

この型の public static (Visual Basicでは共有) メンバはすべて,スレッド セーフです。インスタンス メンバの場合は,スレッド セーフであるとは限りません。

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

.NET Framework

サポート対象 : 3.0,2.0

コミュニティの追加

追加
表示:
© 2014 Microsoft