2

为了在第一次启动应用程序时不在 C#.NET 中显示表单,我有这个:

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

        SomethingForm frmSomething = new SomethingForm();

        Application.Run();
    }

它是一个单表单应用程序,它是SomethingForm具有退出的父表单Button,当前调用以下Application.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身份Shutdown.OnLastWindowCloseShutdownMode.OnMainWindowCloseMSDN Application.ShutdownMode)。

您还提到通知图标有时会在通知区域中徘徊 - 一种可能的解决方法是调用控件Dispose()NotifyIcon释放其资源。

编辑:我的建议可能是针对 WPF 应用程序,自从我使用 WinForms 以来已经有一段时间了。我希望您(或其他人)觉得它有用。

于 2011-07-26T23:24:10.487 回答