我們的一些非技術用戶遇到問題,我們的應用程序中的對話框MessageBox有時可能顯示在主窗體後面,應用程序直到消息框(它們纔會接受任何輸入看不到)被解僱。Dialog MessageBox有時隱藏在主窗體後面
該應用程序是用C#編寫的,消息框是標準的,例如代碼可以像MessageBox.Show(消息,標題)一樣簡單,並且消息框可以由主UI線程創建(即不是一些後臺線程) 。該應用程序不必全屏運行,但我們90%的用戶確實全屏運行。
大多數時候((說不定> 99%)的消息框顯示正確,我從來沒有成功地看到它是如何去錯了,但我已經看到了一臺機器,當它出現了偏差。
有一件事我我們注意到,如果你有一個應用程序顯示一個對話框,那麼當你看到你的任務管理器時,你通常只會在應用程序列表中看到一個條目,當消息框被隱藏時,你會看到兩個條目,一個用於main應用程序和此消息框的另一個條目
一旦知道發生了什麼,就可以很容易地解決問題,但是我們的一些非技術用戶對此感到困惑,並最終關閉了i電腦。 (那些使用遠程桌面的人在解決問題時更加困惑)。
我不認爲它與操作系統有關,因爲我已經看到它發生在Vista中,並且被告知它也發生在Windows 2003服務器上的終端會話中。
是否有任何事情知道爲什麼會發生這種情況,更重要的是,如果能做些什麼來避免它呢?
我遇到了與WPF相同的問題。有些東西可能會觸發對話框與主窗口之間的關係,即使沒有指定,通常也會存在被打破的關係。提供一個窗口作爲第一個參數解決了問題。爲了重新創建它,我在VS調試器中運行了應用程序。調試器處於活動狀態往往會破壞關係。你可以知道問題已經發生,因爲對話框將在任務欄上獲得它自己的條目。 – denver 2015-08-11 20:54:21