我正在學習使用C#的Windows窗體,並有一個裸機應用程序。我試圖在用戶選擇File-> Exit時關閉它。我附加了一個事件處理程序,並且我嘗試調用Application.Exit()
,Application.ExitThread()
並關閉表單。沒有。它停留在那裏。我沒有創建任何其他線程。爲什麼Application.Exit()不會退出Windows窗體應用程序?
想法?謝謝。
我正在學習使用C#的Windows窗體,並有一個裸機應用程序。我試圖在用戶選擇File-> Exit時關閉它。我附加了一個事件處理程序,並且我嘗試調用Application.Exit()
,Application.ExitThread()
並關閉表單。沒有。它停留在那裏。我沒有創建任何其他線程。爲什麼Application.Exit()不會退出Windows窗體應用程序?
想法?謝謝。
您是否嘗試在事件處理程序中放置斷點以查看它是否被命中?
如果是這樣,如果未傳遞窗口消息(即UI線程被阻止),則應用程序不會退出。測試此方法的一種方法是致電Environment.Exit()
,這對於逼近關閉更爲殘酷。如果這個成功,你可以找出爲什麼Application.Exit()
不工作。
搞砸了我。我將委託分配給另一個同名的菜單項。 – Casey 2010-01-28 01:42:49
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();
}
如果你有多種形式,那麼這種方法會起作用嗎? – Casey 2010-01-28 01:58:16
它的確如果你這樣做的主要形式。如果所有其他形式都是兒童,他們將自動銷燬。 – 2010-01-28 02:03:35
'this.Close()'? – 2010-01-28 01:30:54
可能沒有調用事件處理程序。如果你設置了一個斷點,它是否被命中?發佈一些代碼。 – 2010-01-28 01:31:34
當窗體處於活動狀態時按Alt + F4時,應用程序是否能夠正確終止?在VS中自動完成的 – Jay 2010-01-28 01:35:08