DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

TableLayoutPanelのセルを独自に描画する

注意:TableLayoutPanelコントロールは.NET Framework 2.0以降でのみ使用できます。

TableLayoutPanelコントロールはCellPaintイベントにより、セルを独自に描画することができます。

次の例では、一つおきのセルに色をつけています。「TableLayoutPanelコントロールを使って、コントロールを表形式で整列させる」で紹介しているサンプル「TableLayoutPanel1.exe」からの抜粋です。

TableLayoutPanelコントロール

VB.NET
コードを隠すコードを選択
'TableLayoutPanel1のCellPaintイベントハンドラ
Private Sub TableLayoutPanel1_CellPaint( _
    ByVal sender As System.Object, _
    ByVal e As System.Windows.Forms.TableLayoutCellPaintEventArgs) _
    Handles TableLayoutPanel1.CellPaint

    '一つおきにセルの背景色を変更する
    If (e.Column Mod 2 = 1) Xor (e.Row Mod 2 = 1) Then
        e.Graphics.FillRectangle(Brushes.LightSkyBlue, e.CellBounds)
    End If
End Sub
C#
コードを隠すコードを選択
//tableLayoutPanel1のCellPaintイベントハンドラ
void tableLayoutPanel1_CellPaint(object sender,
    TableLayoutCellPaintEventArgs e)
{
    //一つおきにセルの背景色を変更する
    if (e.Column % 2 == 1 ^ e.Row % 2 == 1)
    {
        e.Graphics.FillRectangle(Brushes.LightSkyBlue, e.CellBounds);
    }
}

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • イベントハンドラの意味が分からない、C#のコードをそのまま書いても動かないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。