フォームにコントロールを配置するドッキング位置を指定するDockStyleを試してみます。
ソースコード
using System;
using System.Windows.Forms;
// DockStyle
class Form1 : Form
{
Form1()
{
var controls = new Control[]
{
new Button
{
Dock = DockStyle.Fill,
Text = "Fill",
},
new Button
{
Dock = DockStyle.Left,
Text = "Left",
},
new Button
{
Dock = DockStyle.Right,
Text = "Right",
},
new Button
{
Dock = DockStyle.Top,
Text = "Top",
},
new Button
{
Dock = DockStyle.Bottom,
Text = "Bottom",
},
};
controls[0].Click += (s, e) =>
{
var v = !controls[1].Visible;
for (var i=1; i < controls.Length; i++)
{
controls[i].Visible = v;
}
};
this.Controls.AddRange(controls);
}
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
}
コンパイル
.NET Framework
csc /t:winexe Dock.cs
mono
mcs ./Dock.cs /r:System.Windows.Forms.dll
実行
.NET Framework
./Dock.exe
mono
mono Dock.exe
実行すると上下左右と中央(Fill)にボタンが配置されます。
中央(Fill)ボタンのみクリックすると上下左右のボタンが非表示になります。
四方のボタンが非表示になることで中央(Fill)ボタンがフォームのクライアント領域一杯に広がりました。
コメント