2008-10-01 13 views
3

我有一個MDI應用程序。當我使用MessageBox.Show()顯示一個消息框時,當我關閉消息框時,整個應用程序會在所有打開的窗口後面消失。VB.Net MessageBox.Show()將我的表單移動到後面

該代碼沒有做任何特別的事情。事實上,這裏是從MDI子形式內調用消息框的行:

MessageBox.Show(String.Format("{0} saved successfully.", Me.BusinessUnitTypeName), "Save Successful", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) 

Me.BusinessUnitTypeName()是一個只讀屬性getter返回字符串,這取決於一個成員變量的值。這個屬性沒有副作用。

任何想法?

+0

我有完全相同的問題,我一直無法弄清楚。 – Lamar 2008-10-01 02:42:00

回答

5

刪除最後一個參數MessageBoxOptions.DefaultDesktopOnly

MSDN

DefaultDesktopOnly將導致 應用程序,提出在MessageBox 失去焦點。顯示的 的MessageBox不會使用視覺樣式。 欲瞭解更多信息,請參閱渲染 控件與視覺樣式。

最後一個參數允許後臺Windows服務通過csrss.exe與活動桌面進行通信!詳情請參閱Bart de Smet的blog post

+0

非常感謝。這令人沮喪。 – 2008-10-01 03:04:59

2

刪除MessageBoxOptions.DefaultDesktopOnly參數,它將正常工作。

DefaultDesktopOnly指定「消息框顯示在活動桌面」,導致焦點丟失。

+0

非常感謝。這個答案在功能上與米奇小麥的相似,並且同時進來。由於MSDN片段/參考,我點了點頭。 – 2008-10-01 03:03:45

相關問題