荒屋敷智也のブログ

【Windows Forms】メインフォームでボタンを押して別フォームを表示する方法

当ブログではアフィリエイト広告を利用しています

Windows Forms】メインフォームでボタンを押して別フォームを表示する方法

Windows Formsを使っていると、別フォームを呼び出したいこともあると思います。
やり方は2通りあるので、こちらを紹介していきます。

モードレスフォーム
別フォームを開いても、他のフォームを操作できるフォーム。
モーダルフォーム
別フォームを開いたら、それを閉じない限り他のフォームを操作できないフォーム。
どのやり方で実装したいか決めて下さい。

アプリ画面

「モードレスフォーム」ソースコード

/// <summary>
/// モードレスフォームとして開く
/// フォームを開いたままでも他のフォームを操作することができるフォーム
/// 
/// 親フォームの中心に表示したい場合は、Form2の「StartPotion」プロパティをManualに変更する。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Modeless_button_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();

    form2.Left = this.Left + (this.Width - form2.Width) / 2;
    form2.Top = this.Top + (this.Height - form2.Height) / 2;

    //モードレスフォーム
    form2.Show();
}

「モーダルフォーム」ソースコード

/// <summary>
/// モーダルフォームとして開く
/// 開いたフォームを閉じるまでは、他のフォームを操作することができないフォーム
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Modal_button_Click(object sender, EventArgs e)
{
    Form3 form3 = new Form3();

    //親フォームの中心に表示
    form3.StartPosition = FormStartPosition.CenterParent;

    //モーダルフォーム
    form3.ShowDialog(this);
    form3.Dispose();
}

作成したプロジェクトのダウンロード


  1. とりあえず動きを確認してみたい。
  2. プロジェクトごとデータが欲しい。

ダウンロードするだけで、すでに出来上がったものが手に入るようにしました。

ダウンロード

終わりに

他にも「Windows Forms」についての記事を書いているので、ぜひ参考にしてみて下さい。