VB.Net MessageBox.Show()将在我的形式向回

问题描述 投票:3回答:3

我有一个MDI应用程序。当我使用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返回字符串,这取决于一个成员变量的值。有没有副作用这个属性。

有任何想法吗?

vb.net mdi messagebox mdichild
3个回答
5
投票

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

MSDN

DefaultDesktopOnly将导致上调的MessageBox失去焦点的应用程序。所显示的消息框不会使用视觉样式。欲了解更多信息,请参阅使用视觉样式呈现控件。

最后一个参数允许通过csrss.exe的手段后台Windows服务与活动桌面的沟通!见巴特迪斯对细节blog post


2
投票

取出MessageBoxOptions.DefaultDesktopOnly参数,它会正常工作。

DefaultDesktopOnly指定“消息框被显示在活动桌面上”,它使聚焦的损失。


1
投票

这些问题的答案是正确的,但我想再添点。我碰到这个问题来了别人的代码工作时。一个简单的消息框是造成最前的窗口移动到后面:

的MessageBox.show( “你好”)。

原来,有在MessageBox之前BindingSource.Endedit命令。 BindingSource的未连接到任何控件还,但它造成的窗口来改变Z位置。

我只包括本笔记,因为我的搜索把我带到这个问题,我想这可能是有帮助别人。

© www.soinside.com 2019 - 2024. All rights reserved.