WinForms MessageBox出现在所有屏幕上,或指定主要或次要等。

问题描述:

我有一个Winforms应用程序作为一个警报系统,然而很多将使用我的程序的人将有多个屏幕。警报对时间敏感,所以理想情况下我希望它们出现在所有屏幕上,或者能够指定屏幕,因此用户更有可能注意到它。默认情况下,消息框出现在主屏幕上,我无法找到有关winforms和不同显示器的任何信息。WinForms MessageBox出现在所有屏幕上,或指定主要或次要等。

如果还有另一个winform函数可以做同样的功能,但是多屏幕会很棒,那甚至不需要是消息框。

在旁边注意是否有可能关闭多个消息框,只有1个被接受?

+0

如何使用*丁* + http://*.com/questions/11309827/window-application-flash-like-orange-on-taskbar-when-minimize – 2014-08-31 21:51:20

+0

这是伟大的,我最终希望合并这个,但是警报是/否是单击是然后执行任务,所以弹出窗口非常重要,作为向用户显示是/否选项的一种手段。我也在考虑将它制作成Steam/Skype风格的角落滑动消息框,但不确定他们是否注意足够多。 – bob 2014-08-31 22:23:06

+0

顺便说一句:你仍然可以选择创建一个自定义窗体并将'TopMost'属性设置为true。 – 2014-08-31 22:29:15

我认为最简单的做法是创建一个自定义表单,而不是使用现有的消息框。这样,您可以使用Show方法而不是ShowDialog。这将允许您显示多个表单并从一个响应中关闭所有表单。

至于把它们放在多个屏幕上:你可以找到现有的屏幕System.Windows.Forms.Screen.AllScreens。其中每一个都有一个Bounds属性,它会告诉你每个屏幕的坐标和大小。创建每个自定义表单后,您可以指定它的Location属性以将其置于您选择的屏幕上。

+0

对不起,以前没有收到,但这正是我需要做的。使用表单窗口而不是消息框是完美的,谢谢。 – bob 2014-09-02 13:47:50