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

How do I do MessageBox.Show on primary screen?

是否有可能在主屏幕上显示 MessageBox,而不必在应用程序 运行 所在的屏幕上显示?

你可以试试 MessageBoxOptions.DefaultDesktopOnly:

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

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

没有简单的方法,但这里有一个方法:

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

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

最后,确保在 Show 调用后立即关闭您打开的表单,这样它就不会创建僵尸表单。