C#テーブルレイアウトパネルを試してみる

C# コンピュータ
C#

テーブルレイアウトパネル(TableLayoutPanel)を使うと格子状にコントロールを配置することが出来ます。
入力フォームに使うと便利そうなので試してみました。

using System;
using System.Windows.Forms;
using System.Drawing;

// テーブルレイアウトパネル

class Form1 : Form
{
    Form1()
    {
        var tbl = new TableLayoutPanel
        {
            Dock = DockStyle.Fill,
        };

        var lbl1 = new Label
        {
            Text = "Label1",
            Size = new Size(40,10),
        };
        tbl.Controls.Add(lbl1, 0, 0);

        var trb1 = new TrackBar
        {
            Value = 10,
        };
        tbl.Controls.Add(trb1, 1, 0);

        var txt1 = new TextBox
        {
            Text = trb1.Value.ToString(),
        };
        tbl.Controls.Add(txt1, 2, 0);

        var lbl2 = new Label
        {
            Text = "Label2",
            Size = new Size(40,10),
        };
        tbl.Controls.Add(lbl2, 0, 1);

        var trb2 = new TrackBar
        {
            Value = 10,
        };
        tbl.Controls.Add(trb2, 1, 1);

        var txt2 = new TextBox
        {
            Text = trb2.Value.ToString(),
        };
        tbl.Controls.Add(txt2, 2, 1);

        this.Controls.Add(tbl);
    }
    [STAThread]
    static void Main()
    {
        Application.Run(new Form1());
    }
}

各コントロールの座標を指定していませんが、綺麗に格子状に並びました。

テーブルレイアウトパネルにコントロールを追加は

tbl.Controls.Add(txt1, 2, 0);

で行っています。

第一引数は追加するコントロール。

第二引数は列。

第三引数は行。

になります。

セルのサイズは配置するコントロールのサイズに合わせてくれるようなので、そこだけ気にしておけば、フォームとして破綻しないレイアウトで配置しくれます。

コメント