2009-08-03 118 views

回答

20

有一個更好的解決方案,無需創建一個新的表單。

MessageBox.Show("Message Text", "Header", MessageBoxButtons.OK, MessageBoxIcon.None, 
    MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); // MB_TOPMOST 

0x40000是「MB_TOPMOST」-Flag。

+0

正是我想要的 – harveyt 2014-08-29 01:57:51

+0

它適用於我 – Masum 2015-11-25 05:40:32

37

我試過了donutboy提供的解決方案,它似乎並不接受0x40000(或40000)作爲MessageBoxOptions Enum值的有效選項。

但是我發現使用MessageBoxOptions.DefaultDesktopOnly具有相同的效果,並保持MessageBox在頂部,直到它被用戶確認。 即。

MessageBox.Show("Hello there", "Prompt", MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly); 

這可能是最簡單的本地解決方案。

3

另一種簡單的方法來處理這個問題:

MessageBox.Show(new Form { TopMost = true }, "This is TopMost", "TopMost", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
相關問題