我在c#winforms應用程序(Visual Studio 2010,.net 4)中有一個帶有後臺工作器的窗體。當後臺工作人員忙時,我想在嘗試關閉表單並取消表單關閉時提醒用戶。我想通過將表單關閉取消設置爲true來在表單關閉事件中處理它。當後臺工作正在進行時,無法停止窗體關閉
但它仍然關閉窗體!
這裏是代碼片段我用:
private void FormDrivenDistance_FormClosing(object sender, FormClosingEventArgs e)
{
if (myBackgroundWorker.IsBusy)
{
Messenger.ShowCriticalMessage("Don't close, in progress!");
e.Cancel = true;
}
}
哪裏是錯誤?
在此先感謝!
是的,我相信,除此之外,一切正常,isbusy返回true。是的,事件正確地連接起來。 – Tom 2011-04-12 19:57:01
@Tamas當你在'e.Cancel = true;'上設置一個斷點時會發生什麼?並且遍歷代碼? – Davy8 2011-04-12 19:58:37
即使取消設置爲true,它也會簡單地關閉表單。總而言之,我發現了這個錯誤的原因:我使用開源的UI組件來創建像IDE這樣的Visual Studio(http://www.codeproject.com/KB/toolbars/VS_IDE_Dock_Container.aspx),正如我現在看到的那樣導致的問題,它使窗體關閉在後臺一些技巧,並沒有以正確的方式使用取消...傷心的消息,我需要這個組件,也取消...感謝您的幫助! – Tom 2011-04-12 20:09:14