如何在主屏幕上执行MessageBox.Show?

时间:2015-04-17 13:27:37

标签: c# winforms messagebox

是否有可能在主屏幕上显示MessageBox,而不一定在运行应用程序的屏幕上显示?{/ p>

2 个答案:

答案 0 :(得分:5)

您可以尝试MessageBoxOptions.DefaultDesktopOnly

MessageBox.Show("Hello World", "Caption", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);

对我来说效果很好,但不会使用默认的Windows视觉样式呈现消息框。

答案 1 :(得分:1)

没有一种简单的方法可以做到,但这是一种方式:

首先创建一个非常小(1x1)的窗体或窗口。确保在主显示屏上打开此表单。您可以使用Screen对象获取主要显示尺寸。确保设置表单的属性,使其不显示在任务栏中。

然后调用Messagebox.Show并将Form.Handle传递给show方法。这告诉系统在该对象前面显示消息框。 https://msdn.microsoft.com/en-us/library/cked7698(v=vs.110).aspx

最后,请确保在显示调用后立即关闭您打开的表单,以便它不会创建僵尸表单。