Visual Studio等でC#を使用してGUIアプリケーションを作成する場合に使用するFormの説明です。
ウィンドウであるフォーム(Form)クラスの基本的なプロパティ・メソッド・イベント等について記載します。
フォームの境界線スタイルを指定する
フォームの境界線スタイルを指定するには、フォームのFormBorderStyleプロパティを使用し指定します。
FormBorderStyleプロパティはFormBorderStyle列挙体です。
1 |
this.FormBorderStyle = FormBorderStyle.FixedDialog; |
フォームの最大化・最小化・閉じるを非表示にする
フォームの右上にある最大化、最小化ボタンの表示・非表示の設定は、MaximizeBox・MinimizeBoxプロパティを設定します。閉じるボタンの表示・非表示はControlBoxを設定します。
※閉じるボタンを非表示にすると最大化、最小化、閉じるボタンも消えます。
1 2 3 4 5 6 7 8 |
//最大化ボタンの表示、非表示を切り替える this.MaximizeBox = false; //最小化ボタンの表示、非表示を切り替える this.MinimizeBox = false; //コントロールボックスの表示、非表示を切り替える this.ControlBox = false; |
フォームの最大サイズ・最小サイズを設定する
1 2 3 4 5 |
//フォームの最大サイズを設定する this.MaximumSize = new System.Drawing.Size(1024, 512); //フォームの最小サイズを設定する this.MinimumSize = new System.Drawing.Size(128, 128); |
フォームが最大化された時の位置とサイズを設定する
1 |
this.MaximizedBounds = new Rectangle(128, 128, 512, 256); |
フォームをタスクバーに表示しない
1 |
this.ShowInTaskbar = false; |
フォームを常に最前面に表示する
1 |
this.TopMost = true; |
フォームを閉じる
1 |
this.Close(); |
フォームを表示する
1 2 |
Form2 fm2 = new Form2(); fm2.Show(); |
フォームをモーダルで表示する
1 2 3 4 |
using (Form2 fm2 = new Form2()) { fm2.ShowDialog(); } |
フォームの表示位置を設定する
フォームの初期位置は、StartPositionプロパティをFormStartPosition列挙体で指定します。
1 |
fm2.StartPosition = FormStartPosition.CenterParent; |
フォームをアクティブにする
1 |
fm2.Activate(); |
フォームを隠す
1 |
fm2.Hide(); |
子コントロールが表示されているかどうか確認
1 2 3 |
if (fm2.Visible) { } |
コントロールが破壊されているかどうか
1 2 3 |
if (!fm2.IsDisposed) { } |
フォームに[OK] ボタン・[Cansel]ボタンを追加
1 2 3 4 5 6 7 8 9 |
private void button_OK_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.OK; } private void button_Cancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; } |
呼び出し側
1 2 3 4 5 6 7 8 9 10 |
private void button1_Click(object sender, EventArgs e) { using (Form2 fm2 = new Form2()) { if (fm2.ShowDialog() == DialogResult.OK) { MessageBox.Show("OKボタンが押されました。"); } } } |
フォームが閉じられるのをキャンセルする
1 2 3 4 5 6 7 |
private void Form2_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("閉じますか?", "確認", MessageBoxButtons.YesNo) == DialogResult.No) { e.Cancel = true; } } |