[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); }
▼ページトップへ