当用户从文件菜单中单击退出菜单项时,应该如何退出应用程序?
我试过:
this.Dispose();
this.Exit();
Application.ShutDown();
Application.Exit();
Application.Dispose();
还有很多其他的。没有什么工作。
当用户从文件菜单中单击退出菜单项时,应该如何退出应用程序?
我试过:
this.Dispose();
this.Exit();
Application.ShutDown();
Application.Exit();
Application.Dispose();
还有很多其他的。没有什么工作。
当前回答
另一种方法是:
System.Diagnostics.Process.GetCurrentProcess().Kill();
这将强制终止应用程序。它总是有效的,即使在多线程应用程序中也是如此。
注意:注意不要在另一个线程中丢失未保存的数据。
其他回答
正如wuminqi所说,Application.Current.Shutdown();是不可逆的,我相信它通常用于强制应用程序关闭时,如当用户注销或关闭Windows。
相反,在主窗口中调用this.close()。这与在窗口上按Alt + F4或关闭[x]按钮相同。这将导致所有其他拥有的窗口关闭,并最终调用Application.Current.Shutdown();只要近距离行动没有取消。请参阅MSDN文档关闭窗口。
此外,由于this.close()是可取消的,您可以在关闭事件处理程序中放入一个保存更改确认对话框。简单地为<Window Closing="…>和更改e。(有关如何做到这一点的详细信息,请参阅MSDN文档。)
要退出应用程序,您可以调用
System.Windows.Application.Current.Shutdown();
如应用程序文档中所述。你也可以通过指定ShutdownMode来修改应用程序的关机行为:
在以下情况下,Windows Presentation Foundation (WPF)会隐式调用Shutdown: 当ShutdownMode设置为OnLastWindowClose时。 当关机模式设置为OnMainWindowClose时。 当用户结束会话,而SessionEnding事件未被处理或在未取消的情况下被处理时。
请注意Application.Current.Shutdown();只能从创建Application对象的线程调用,即通常是主线程。
如果你想从另一个没有创建应用程序对象的线程中退出,请使用:
另一种方法是:
System.Diagnostics.Process.GetCurrentProcess().Kill();
这将强制终止应用程序。它总是有效的,即使在多线程应用程序中也是如此。
注意:注意不要在另一个线程中丢失未保存的数据。
Try
App.Current.Shutdown();
对我来说
Application.Current.Shutdown();
没有工作。