TableLayoutPanel クラスとは? わかりやすく解説

TableLayoutPanel クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

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

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

<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
Public Class TableLayoutPanel
    Inherits Panel
    Implements IExtenderProvider
Dim instance As TableLayoutPanel
[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
public class TableLayoutPanel : Panel, IExtenderProvider
[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)] 
public ref class TableLayoutPanel : public
 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 コントロールは、RowCount、ColumnCount、および 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 に設定しても、子コントロール移動しません。

使用例使用例

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

Public Class DemoTableLayoutPanel
    Inherits TableLayoutPanel

    Protected Overrides Sub
 OnCellPaint( _
    ByVal e As System.Windows.Forms.TableLayoutCellPaintEventArgs)

        MyBase.OnCellPaint(e)

        Dim c As Control = Me.GetControlFromPosition(e.Column,
 e.Row)

        If Not c Is Nothing
 Then
            Dim g As Graphics = 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)
        End If

    End Sub

End Class
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 では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「TableLayoutPanel クラス」の関連用語

TableLayoutPanel クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



TableLayoutPanel クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS