【C#】Formから別フォームを表示しメインフォームを切り替える

この記事は約 2 分で読めます。

みなさんこんにちは!!

ヒロポンです!!

今回はC#のwinformのテクニックで、Formから別のFormを表示して、メインフォームを切り替えるような挙動にする方法を書いていきたいと思います!

まずは適当にFormを用意する

まずはこんな感じで適当に三つほどFormを用意します

各Formで別Formを表示するときのコード

        private void button1_Click(object sender, EventArgs e)
        {
            var form = new Form2();
            this.Hide();

            if (form.ShowDialog() == DialogResult.Cancel)
            {
                this.Show();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {

            var form = new Form3();
            this.Hide();

            if (form.ShowDialog() == DialogResult.Cancel)
            {
                this.Show();
            }
        }

ボタンを押して別Formを表示した時のコードをこんな感じにします。

これは別Formのインスタンスを作ったと同時に、自身を隠す。

そして別フォームを一旦表示し、閉じられた際にDialogResule.Cancelが返るので、その値を受け取ったら自身を表示すると書いています。

Form2とForm3のコードはこんな感じ


namespace FormToForm
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var form = new Form3();
            this.Hide();

            if (form.ShowDialog() == DialogResult.Cancel)
            {
                this.Show();
            }
        }
    }
}
namespace FormToForm
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var form = new Form2();
            this.Hide();

            if (form.ShowDialog() == DialogResult.Cancel)
            {
                this.Show();
            }
        }
    }
}

実行するとこんな感じ!

これを実行すると下記のような感じになります。

Form1が表示されている状態でbutton1を押すと

こんな感じで、別のフォームが表示されたら、自身は閉じてから開くって感じの挙動になります。

今回のコードはgithubに置いています!

今回のコードはgithubにFormToFormという名前で置いています!

ローカルにクローンつくって是非試してみてください!

https://github.com/adaman3568/blog-source-demo

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA