0

重複の可能性:
Windows フォーム: 実行時にアプリケーションのメインウィンドウを変更する

新しいフォームを作成し、C# でメイン フォームを破棄したい。どうすればこれを行うことができますか?

var fw2 = new Form2();
fw2.Show();
this.Dispose();

このコードは、2 番目のフォームを 1 秒間表示して、プログラムを閉じます。何か案は?

4

1 に答える 1

0

私は Program クラスでこの種のことをしました。Main メソッドで通常見られる以下のコードをループに入れただけです。

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmMain());

メイン フォームが閉じられると、コードは「Run」メソッドを離れ、アプリケーション グローバル変数をチェックして新しいフォームをレンダリングする必要があるかどうかを確認するループに入ります。

新しいフォームを開きたいだけの場合、これはやり過ぎですが、メインフォームを定期的に「交換」している場合は非常にうまく機能するようです。

私のコードは(少し)このように見えます...

while (true)
{
    if (AppSettings.SomeFormSettng = FormSetting.ShowAnotherForm)
    {
        Form showThisForm = AppSettngs.TheForm;
        if (ThisIsTheFirstRun)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ThisIsTheFirstRun = false;
        }
        Application.Run(new showThisForm ());
    }
    else
    {
        return;
    }
}
于 2013-01-16T10:35:51.800 に答える