有winforms MessageBox出现在所有屏幕上,或指定Main或Secondary等。

我有一个winforms应用程序,它起到警报系统的作用,但很多使用我程序的人都会有多个屏幕。 警报是时间敏感的,所以理想情况下我希望它们出现在所有屏幕上,或者能够指定屏幕,因此用户更有可能注意到它。 默认情况下,消息框出现在主屏幕上,我找不到任何与winforms和不同监视器有关的信息。

甚至不必是一个消息框,如果有另一个winform函数可以做同样的function,但也有多个屏幕,这将是伟大的。

在旁注中,是否可以从仅接受1个消息框中关闭多个消息框?

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

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