C# 画面遷移 新しいフォームの追加

今回は、C#での画面遷移について、まとめていこうと思います。

画面遷移というより、C#では、新しいフォームを立ち上げるといったイメージです。

  • form.Show()
  • form.ShowDialog()

を使います。

 

新しいフォームの作成

まずは、Form1のレイアウトを作成しましょう。画面遷移用のボタンを1つ作成してください。

「Form2を表示ボタン」を作りました。

次に、画面遷移先のFormを作成しましょう。

フォームを作成するには、プロジェクトを右クリック→追加→新しい項目 を選択しましょう。

そして、「Windowsフォーム」を選択します。この時、下のテキストボックスで名前も付けれます。

私は、Form2で作成します。画面レイアウトも好きなように作成しましょう!

ボタンを1つ作成しておいてください。

これで、遷移元画面(Form1)と遷移先画面(Form2)を作成することができました。

 

画面遷移(show)

それでは、画面遷移を組み込んでいきましょう。

まず、元画面(Form1)のデザインを開いて、「Form2を表示ボタン」にボタンイベントを作成してください。

private void Button1_Click(object sender, EventArgs e)
{
    Form2 f2 = new Form2();
    f2.Show();
}

それでは、実行してみましょう。Form1が表示された後、ボタンを押してみましょう。

画面が表示されました。

 

一度、処理を終了して、Form2のボタン「画面を閉じる」にボタン処理を作成しましょう。

this.close()で画面を閉じることができます。

private void Button1_Click(object sender, EventArgs e)
{
    this.Close();
}

 

ここまでで、新しいフォームの表示ができるようになりましたね。

ただ、画面遷移っぽくしたい、前の画面が残っているのが嫌だという人は、前の画面をVisible=Falseにしてやりましょう。

private void Button1_Click(object sender, EventArgs e)
{
    //次画面を非表示
    this.Visible = false;

    //Form2を表示
    Form2 f2 = new Form2();
    f2.Show();
}

 

Form2では、「画面を閉じる」ボタンを押したときに、非表示にしたForm1を表示状態にします。

private void Button1_Click(object sender, EventArgs e)
{
    //Form1を表示
    Form1 f1 = new Form1();
    f1.Visible = true;

    //画面を閉じる
    this.Close();
}

 

実行してみてください。いい感じに画面遷移ができていると思います。

 

モーダルウィンドウとは(ShowDialog)

ShowDialog()とは、遷移先の画面を閉じるまでは、遷移元の画面を触ることができないようにすることができます。

モーダルウィンドウといいいます。

イメージをつかむために、実行しましょう。

 

遷移元画面(Form1)

private void Button1_Click(object sender, EventArgs e)
{
    //Form2を表示
    Form2 f2 = new Form2();
    f2.ShowDialog();
}

 

遷移先画面(Form2)

private void Button1_Click(object sender, EventArgs e)
{
    //画面を閉じる
    this.Close();
}

 

実行してみてください。遷移先の画面を閉じるまでは、遷移元の画面が触れないと思います。

これが、モーダルウィンドウです。画面遷移については以上になります。

 

まとめ

別のフォームを開くときは、Form.Show();

モーダルウィンドウで開くときは、Form.ShowDialog();

 

C#の記事一覧

おすすめの記事