後來我遇到了一種情況,我們需要向用戶顯示消息框以獲取通知,但我們無法使用MessageBox.Show,因爲它阻止了GUI線程(所以在對話框處於活動狀態時屏幕上沒有任何內容會更新)。有關替代方案的任何建議?對不阻止GUI線程的MessageBox.Show替換的建議?
[我在當時編碼的替代品,但我不喜歡它。如果沒有更好的出現,我會張貼它作爲答案]
編輯:對話框必須浮在主窗口頂部;我不在乎它是否出現在任務欄中。在特定情況下,可能會同時激活多個對話框。
附錄:我的解決方案是提供OK和CANCEL按鈕以發出Completed和Canceled事件的基本形式;確定爲子類覆蓋調用了一個虛擬的ValidateData。調用表單使用屬性來避免每次都重新創建表單(表單只是隱藏而不是關閉),並保存活動表單的字典以防止同一表單被激活多次。這看起來像一個模態形式,一次支持多個彈出窗體,但不會捆綁主GUI線程。
我不明白downvoting這樣直接的問題... – 2009-02-24 20:11:42