パネルの仕組みを知る
ウィンドウには、さまざまなコントロールを配置することができます。このとき、コントロールをうまく配置することはたいせつです。コントロールを配置するパネル(panel)と呼ばれるコントロールが存在します。
まず、「ラベル」と「ボタン」という2つのコントロールをフローレイアウトパネル(FlowLayoutPanel)と呼ばれるパネルに配置してみることにしましょう。
using System;
using System.Windows.Forms;
using System.Drawing;
namespace lesson7
{
class sample1 : Form
{
private Button[] bt = new Button[6];
private FlowLayoutPanel flp;
static void Main(string[] args)
{
Application.Run(new sample1());
}
public sample1()
{
this.Text = "lesson7";
this.Width = 600; this.Height = 100;
flp = new FlowLayoutPanel(); //フローレイアウトパネルを作成します
flp.Dock = DockStyle.Fill;
for (int i = 0; i < bt.Length; i++) //ボタンを6つ作成します
{
bt[i] = new Button(); //パネルにボタンを追加します
bt[i].Text = Convert.ToString(i);
bt[i].Parent = flp;
}
flp.Parent = this;
}
}
}
実行画面

フローレイアウトパネルコンポーネントを直線的に並べるパネルです。このパネルを親としてコントロールを設定すると、コントロールは左から右に並べられます。
なお、ここではフリーレイアウトパネルのDockプロパティをDockStyle.Fillという値を指定しています。Dockプロパティはそれがおかれるコントロールにどのようにドッキングされるか示したものです。DockStyle.Fillは大きさいっぱいに張り付く値となります。つまりここでは、フォームいっぱいにフローレイアウトパネルが張り付いていることにになります。
| 種類 | 説明 |
|---|---|
| Fill | 大きさいっぱいにドッキングされる |
| Top | 上にドッキングされる |
| Bottom | 下にドッキングされる |
| Left | 左にドッキングされる |
| Right | 右にドッキングされる |

フローレイアウトパネルは、コントロールを横に並べ
格子状にレイアウトする
続いて、テーブルレイアウトパネル()を学ぶことにしましょう。このレイアウトパネルを使うと、縦横のコントロールの数を決めて、格子状にコントロールを並べることができます。
using System;
using System.Windows.Forms;
using System.Drawing;
namespace lesson7
{
class sample2 : Form
{
private Button[] bt = new Button[6];
private TableLayoutPanel tlp;
static void Main(string[] args)
{
Application.Run(new sample2());
}
public sample2()
{
this.Text = "lesson7";
this.Width = 300; this.Height = 200;
tlp = new TableLayoutPanel(); //テーブルレイアウトパネルを作成します
tlp.Dock = DockStyle.Fill;
tlp.ColumnCount = 3; //列を3とします
tlp.RowCount = 2; //行を2とします
for (int i = 0; i < bt.Length; i++) //ボタンを6つ作成します
{
bt[i] = new Button(); //パネルにボタンを追加します
bt[i].Text = Convert.ToString(i);
bt[i].Parent = tlp;
}
tlp.Parent = this;
}
}
}

| クラス | 説明 |
|---|---|
| System.Windows.Forms.TableLayoutPanelクラス | |
| TablePanel()コンストラクタ | テーブルレイアウトパネルを作成します |
| ColumnCountプロパティ | 列数を指定・取得する |
| RowCountプロパティ | 行数を指定・取得する |
テーブルレイアウトパネルで、格子状にレイアウトできる。

コメント