2013-10-07 74 views
0

當應用程序啓動時,將從另一個線程顯示啓動畫面。 但是,如果在啓動過程中出現錯誤 - 消息框將顯示。問題是:消息框顯示在飛濺之下。我已經使用IWin32Window擁有者屬性,甚至試圖使用MessageBoxOptions.DefaultDesktopOnly屬性,但id沒有幫助。所有線程頂部的MessageBox

我該如何處理這種情況?

PS: 試圖創建不可見的窗口,設置TopMost並顯示MessageBox。不工作。

+1

你不應該使用另一個線程比UI顯示窗口(窗體,消息框,閃屏等) –

+2

@SriramSakthivel:這不是普遍適用。您可以爲每個窗口使用不同的線程。 – Douglas

+0

@Douglas將會有利於爭論,但不是現實!我知道窗口與創建它的線程有1-> 1的關係,但是不能爲您創建的每個窗口創建專用線程 –

回答

1

我使用多線程創建了類似的情況,並使用此代碼將MessageBox保留在窗口頂部。基本上這個代碼使消息框最重要。

MessageBox.Show(this, 
    "Your text", 
    "Settings Needed", 
    MessageBoxButtons.YesNo, 
    MessageBoxIcon.Question, 
    MessageBoxDefaultButton.Button1, 
    (MessageBoxOptions)0x40000); // this is MB_TOPMOST flag