我正致力于创建文件管理程序。我的左上角有一个文件按钮,下拉菜单有一个退出按钮。以下是一段代码:
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
我已经尝试了各种不同的命令来退出程序,但到目前为止还没有任何工作。这似乎是一个非常简单的代码,我完全按照多个网站的说明。如果你能给我任何关于我为什么遇到这个问题的想法,我将不胜感激。我正在使用Visual Studio Express 2013。
答案 0 :(得分:1)
如果是WPF应用程序,请使用
Application.Current.Shutdown();
答案 1 :(得分:0)
您可以通过检查System.Windows.Forms.Application.MessageLoop属性来确定是否已调用System.Windows.Forms.Application.Run。如果为true,则调用Run,您可以假设WinForms应用程序正在执行如下。
If (System.Windows.Forms.Application.MessageLoop)
{
// Use this since we are a WinForms app
System.Windows.Forms.Application.Exit()
}
Else
{
// Use this since we are a console app
System.Environment.Exit(1)
}
参见:http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx
OR
Environment.Exit(0);
答案 2 :(得分:0)
正确的方法是Application.Exit()。它终止所有消息循环并关闭所有窗口,从而使您的表单可以执行其清理代码(在Form.OnClose
等)。
Environment.Exit
会杀死这个过程。如果某种形式有例如未保存的更改,它将没有任何机会询问用户该人是否要保存它们。此外,无法正确释放资源(数据库连接等),文件可能无法刷新等。
如果使用多线程,Application.Exit()
将不会终止您的线程(因此即使GUI终止,应用程序也将继续在后台运行)。因此,您必须采取措施在主函数(即Program.Main()
)或主表单的OnClose
事件中杀死您的主题。