這與This one非常相似,很遺憾,也沒有人回答過。經過長時間的計算後,MessageBox不會顯示在mdi窗體上
我有一個MDI主要論壇,承載幾個孩子的形式。其中一個進行長時間計算,並在發生錯誤時引發異常(所有工作都在同一個線程上完成)。然後我嘗試通過消息框通知用戶有錯誤,但是它不出現(但是從MDI Main竊取焦點,所以應用程序完全沒有響應)。
如果我調用Application.DoEvents()(邪惡我知道,但這是最後的手段),beheviour會稍微改變。然後,表單保持完全活動狀態,只有在將活動應用程序(Alt + Tab)更改爲其他內容並返回後,纔會顯示消息框。
我能做些什麼來確保消息框可見?我已經試過將MessageBox.Show方法的參數傳遞給活動的孩子和MDI Main。它不會改變行爲。
澄清:在MessageBox是子窗體的一部分,但在這一點上,我願意以顯示它在不休息應用程序的任何方式。消息框應該是模態的,但它應該是可見的,以便用戶可以確認它。
你還有這個問題嗎? – ChrisBD 2010-04-06 08:58:43
我寫了一個使用另一個線程顯示消息框的解決方法。我仍然認爲這個問題沒有回答,但我的解決方案是一種解決方法,所以我不認爲我會用它來回答我自己的問題。 – 2010-04-06 15:33:56