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