経緯
C#のWindowsフォームアプリケーションを作成している中で、「ボタンをクリックしたら別のフォームを表示したい」と考えました。
たとえば、設定画面やサブ画面を別ウィンドウとして開きたい場合に必要になる処理です。
今回はその実装方法を学習し、動作確認を行いました。
Show()を使ってフォームを開く
別フォームを表示するためには、Form
クラスのインスタンスを作成し、.Show()
メソッドを呼び出します。
以下のように、button1
がクリックされたときにForm2
を開くコードになります。
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
コードの解説
・button1_Click
は、Windowsフォーム上のbutton1
に設定されたクリックイベントです。
・Form2 form2 = new Form2();
で、新しいフォーム(Form2)をインスタンス化しています。
・form2.Show();
によって、Form2を画面上に非モーダルで表示しています。親フォームと同時に操作可能な状態です。
モーダルで開きたい場合(補足)
もし、Form2を開いている間は元のフォームを操作できないようにしたい場合は、Show()
ではなくShowDialog()
を使用します。
この方法は、設定画面などでよく使われるモーダル表示になります。
Form2 form2 = new Form2();
form2.ShowDialog();
このように記述することで、Form2が閉じられるまで他の操作を受け付けない状態になります。
まとめ
C#で別フォームを表示したい場合は、非常にシンプルなコードで実現できます。Show()
を使えば非モーダルに、ShowDialog()
を使えばモーダルにフォームを表示することが可能です。
複数画面構成のアプリケーションを作る際には必須となる処理ですので、ぜひご活用ください。
最後までお読みいただき、ありがとうございました。