VB.Net MessageBox.Show()将我的表单移动到后面

Pit*_*DBA 3 vb.net mdi messagebox mdichild

我有一个MDI应用程序.当我使用MessageBox.Show()显示一个消息框时,当我关闭消息框时,整个应用程序在我打开的所有窗口后面消失.

代码没有做任何特别的事情.实际上,这是从MDI子窗体中调用消息框的行:

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

Me.BusinessUnitTypeName()是一个只读属性getter,它返回一个字符串,具体取决于成员变量的值.这家酒店没有副作用.

有任何想法吗?

Mit*_*eat 5

删除最后一个参数MessageBoxOptions.DefaultDesktopOnly.

来自MSDN:

DefaultDesktopOnly将导致引发MessageBox的应用程序失去焦点.显示的MessageBox不会使用视觉样式.有关更多信息,请参见使用视觉样式渲染控件.

最后一个参数允许通过csrss.exe将后台Windows服务与活动桌面进行通信!有关详细信息,请参阅Bart de Smet的博客文章.