代码之家  ›  专栏  ›  技术社区  ›  Casey

为什么application.exit()不退出Windows窗体应用程序?

  •  2
  • Casey  · 技术社区  · 15 年前

    我正在使用C学习Windows窗体,并有一个简单的应用程序。当用户选择“文件”->退出时,我正在尝试关闭它。我附加了一个事件处理程序,并尝试调用 Application.Exit() , Application.ExitThread() 只需关闭表单。没有什么。它就在那儿。我也没有创建任何其他线程。

    思想?谢谢。

    2 回复  |  直到 12 年前
        1
  •  6
  •   codekaizen    12 年前

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

    如果是这样,那么如果窗口消息没有被传递(即UI线程被阻塞),应用程序就不会退出。测试这个的一种方法是调用 Environment.Exit() 更残忍的是强行关闭。如果成功了,你就可以找出原因 Application.Exit() 不起作用。

        2
  •  4
  •   John Knoeller    15 年前

    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();
      }