アフィリエイト広告を利用しています。

C#

【C#】Formをメインフォームから別のフォームに切り替える方法

今回はC#のFromを切り替える処理について解説していきます。Formを切り替える際にどうすれば、いんだろうと悩んでる方、読んでみてください。その悩みが解決します。

Fromを2つ用意する

メインフォームのForm1と切り替え先のフォームのForm2を用意する。

Form1からForm2に切り替える処理を記載する(ApplicationContextクラス使用)

Visual C#で自動生成されたMAINメソッドを変更する。メインフォーム用の変数を作成し、Application.Runメソッドに設定する。Form1,2の切り替え処理を作成する。

        public static ApplicationContext main_form;   //1,メインフォーム用の変数   
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //2,初めに生成されているコードをコメントアウトする
            //Application.Run(new Form1());
            //3,メインフォーム用の変数をApplication.Runの引数に設定
            main_form = new ApplicationContext();
            main_form.MainForm = new Form1();
            Application.Run(main_form);
        }

        //4,Form1に切り替える処理
        public static void Display_form1()
        {
            main_form.MainForm = new Form1();
            main_form.MainForm.Show();
        }
        //5,Form1に切り替える処理
        public static void Display_form2()
        {
            main_form.MainForm = new Form2();
            main_form.MainForm.Show();
        }

Form1、2ボタンをクリックしたときにFormを切り替える処理を作成する

Form1,2ボタンをクリックした時、Formを切り替える処理を実装する。切り替えた後、切り替える前のフォームを閉じる処理を実装する。

        //6,Form1のボタンを押したとき、Form2を表示させる処理
        private void form1_button_Click(object sender, EventArgs e)
        {
            Program.Display_form2();
            this.Close();  //Form1を閉じる処理
        }
        //7,Form2のボタンを押したとき、Form1を表示させる処理
        private void form2_button_Click(object sender, EventArgs e)
        {
            Program.Display_form1();
            this.Close();  //Form2を閉じる処理
        }

上記のようにコードを作製すれば、フォームを自由に切り替えることができます。以上、C#のFormをメインフォームから別のフォームに切り替える方法でした。