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

Cas*_*sey 2 c# windows winforms

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

想法?谢谢.

cod*_*zen 6

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

如果是这样,如果窗口消息未被传递(即UI线程被阻止),则应用程序将不会退出.测试这种方法的一种方法是调用Environment.Exit()哪个更强烈关于强迫关闭.如果成功,您可以找出Application.Exit()无法正常工作的原因.


Joh*_*ler 5

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();
  }
Run Code Online (Sandbox Code Playgroud)

  • 如果您对主窗体执行此操作,则会发生这种情况。如果所有其他表格都是子表格,它们将被自动销毁。 (2认同)