为了在第一次启动应用程序时不在C#.NET中显示表单,我有:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SomethingForm frmSomething = new SomethingForm();
Application.Run();
}
这是一个表单应用程序,SomethingForm
是父表单,其中有Button
退出,目前调用以下Application.ExitThread();
。此按钮是退出应用程序的唯一方法。
现在我知道这不是优雅的终止,但这是我在测试时能够让它工作的唯一方法。现在,退出后将图标留在系统托盘中会出现一些问题。
那么我如何GRACEFULLY终止此应用程序?
答案 0 :(得分:3)
只需从表单中调用this.Close()即可。假设这是唯一的表单,应用程序应该正常退出。
稍微不那么优雅的方式是使用Application.Exit()。这个问题是表单关闭事件没有引发(在.NET 1.1之后修复)。
答案 1 :(得分:2)
或使用:
Application.Exit()
代码中的任何地方。
或
System.Environment.Exit(-1);
答案 2 :(得分:0)
如前所述,您可以Form.Close()
或Application.Shutdown()
。您可能需要将Application.Current.ShutdownMode
更改为Shutdown.OnLastWindowClose
或ShutdownMode.OnMainWindowClose
(MSDN Application.ShutdownMode)。
您还提到通知图标有时会隐藏在通知区域中 - 一个可能的解决方法是调用Dispose()
控件上的NotifyIcon
来释放其资源。