为什么Application.Exit()不会退出Windows窗体应用程序?

时间:2010-01-28 01:30:10

标签: c# windows winforms

我正在使用C#学习Windows Forms并且有一个简单的骨骼应用程序。当用户选择File-> Exit时,我试图关闭它。我附加了一个事件处理程序,我尝试调用Application.Exit()Application.ExitThread()并关闭表单。没有。它留在那里。我也没有创建任何其他类型的线程。

想法?感谢。

2 个答案:

答案 0 :(得分:6)

您是否尝试在事件处理程序中放置断点以查看它是否被命中?

如果是这样,如果窗口消息未被传递(即UI线程被阻止),则应用程序将不会退出。测试此问题的一种方法是调用Environment.Exit(),这对于强行关闭更为残酷。如果成功,您可以找出Application.Exit()无效的原因。

答案 1 :(得分:4)

Application.Exit不是关闭GUI应用程序的常用方法。请改用form.Close

  private static void OnMenuClose_Click(object sender, System.EventArgs e)
  {
     Form dlg = ((Control) sender).FindForm();
     //dlg.DialogResult = DialogResult.OK;
     dlg.Close();
  }