見出し画像

【C#】起動フォームからメインフォームのCALL

目的

アプリ起動時に別途、起動フォームが必要な場合の処理です。

利用シーン

起動時に「起動中...」などのメッセージ画面を出したい場合。

プログラムコード

        #region スタートアップ画面表示後(イベント)
        private void FstartUp_Shown(object sender, EventArgs e)
        {
            // frmのDisposeのためtryの外でnewする。
            F_Main frm = new F_Main();

            try
            {
                //** メイン画面のShownイベントを結びつけ
                frm.Shown += new EventHandler(main_Shown);

                //** メイン画面を表示
                frm.ShowDialog();
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message,
                    "起動エラー",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            finally
            {
                //** モーダルをShowDialogで呼び出しているのでDisposeする 
                frm.Dispose();

                //** メイン画面終了後、自身(スタートアップ)を閉じる
                this.Close();
            }
        }
        #endregion

解説

「F_Main」は、実際に起動したいメイン画面。あらかじめデザイナで作っておきます。

技術メモ

フォームをモーダル(ShowDialog)で呼び出した場合、Closeしてもフォームのリソースは解放されません。
リソースを解放するためにDisposeを呼びます。
ちなみにフォームをモーダレス(Show)で呼び出した場合はCloseでOK。


この記事が気に入ったらサポートをしてみませんか?