[VC2005] 新しいフォームを開く方法
◆概要
このページは、Microsoft C#で新しいフォームを開く方法について記述しています。
◆モードレス表示
Windowsフォームをモードレス表示するには、表示したいフォームのクラスからオブジェクトを生成して、そのShowメソッドを実行します。
private void button1_Click(object sender, EventArgs e) {
Form2 _fm2 = new Form2();
_fm2.Show();
}
.NET Framework 2.0からは、ジェネリックの仕組みを使ったリストである「Listジェネリック・クラス」が利用できます。フォーム・オブジェクトをListジェネリック・クラス(「SubFormList」変数)で管理する例を次に示します。
using System; using System.Collections.Generic; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { private List<Form2> SubFormList = new List<Form2>(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 _form = new Form2(); _form.Show(this); SubFormList.Add(_form); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { foreach (Form2 _form in SubFormList) { _form.Close(); _form.Dispose(); } } } }
▼ページトップへ
◆モーダル表示
Windowsフォームをモーダル表示するには、New演算子を使って、表示したいフォームのクラスからオブジェクトを生成して、そのShowDialogメソッドを実行します。この場合、アプリケーション内のほかのフォームは選択できなくなります。
private void button1_Click(object sender, EventArgs e) {
Form2 _fm2 = new Form2();
_fm2.ShowDialog();
}
using区を使って、Form2のDisposeを確実にするには次のようにします。
private void button1_Click(object sender, EventArgs e) {
using (Form2 _frm2 = new Form2()) {
_frm2.ShowDialog(this);
}
}
▼ページトップへ
◆ApplicationクラスのRunメソッドを使う方法
以下の例では、Application クラスの Run メソッドが呼び出され、実行の制御が Run メソッドに移り、Form1が表示されます。
Form1を閉じると、Run メソッドを抜けて制御が Main メソッドに戻ります。そして、メッセージボックスが表示されます
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
MessageBox.Show("Form1を閉じました。", "Sample",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
▼ページトップへ