2

アプリケーションを最初に起動したときにC#.NETでフォームを表示しないようにするために、次のようにします。

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        SomethingForm frmSomething = new SomethingForm();

        Application.Run();
    }

これは1つのフォームのアプリケーションであり、現在次のを呼び出す終了SomethingFormする親フォームです。このボタンは、アプリケーションを終了する唯一の方法です。ButtonApplication.ExitThread();

これは正常な終了ではないことがわかりましたが、テスト時に機能させる唯一の方法でした。終了後にシステムトレイにアイコンを残すと、いくつかの問題が発生します。

では、どうすればこのアプリケーションを完全に終了できますか?

4

3 に答える 3

3

フォームからthis.Close()を呼び出すだけです。それが唯一のフォームであると仮定すると、アプリケーションは正常に終了する必要があります。

少し優雅でない方法は、Application.Exit()を使用することです。これに伴う問題は、フォームを閉じるイベントが発生しないことです(.NET 1.1以降で修正されました)。

于 2011-07-26T22:54:23.410 に答える
3

または使用:

Application.Exit() 

コードのどこでも。

また

System.Environment.Exit(-1);
于 2011-07-26T22:57:07.887 に答える
0

すでに答えたように、あなたはまたはのどちらかをすることができForm.Close()ますApplication.Shutdown()。またはに変更Application.Current.ShutdownModeする必要がある場合があります(MSDN Application.ShutdownMode)。Shutdown.OnLastWindowCloseShutdownMode.OnMainWindowClose

また、通知アイコンが通知領域に残ることがあるとのことですが、これに対する1つの可能な修正はDispose()NotifyIconコントロールを呼び出してリソースを解放することです。

編集:私のアドバイスはWPFアプリケーションに関するものかもしれませんが、WinFormsを使用してからしばらく経ちました。あなた(または他の誰か)がそれが役に立つと思うことを願っています。

于 2011-07-26T23:24:10.487 に答える