一尘不染

在双监视器方案中,如何确保表单显示在“附加”监视器上?[重复]

c#

这个问题已经在这里有了答案

在辅助监视器上显示Windows窗体? (9个答案)

6年前关闭。

我有一个应用程序,其中有一个要在第二个屏幕上显示的表单。

意思是如果应用程序正在屏幕A上运行,并且当我单击菜单显示窗体时它应该显示在屏幕B上,并且与应用程序正在屏幕B上运行并且当我单击菜单显示窗体时它应该在屏幕A上显示一样。


阅读 224

收藏
2020-05-19

共1个答案

一尘不染

您需要使用Screen该类来查找原始表单不在的屏幕,然后Location根据该屏幕的属性设置第二个表单的属性Bounds

例如:

var myScreen = Screen.FromControl(originalForm);
var otherScreen = Screen.AllScreens.FirstOrDefault(s => !s.Equals(myScreen)) 
               ?? myScreen;
otherForm.Left = otherScreen.WorkingArea.Left + 120;
otherForm.Top = otherScreen.WorkingArea.Top + 120;

这将适用于任意数量的屏幕。

请注意,可能已对视频卡进行了配置,以使Windows看到一个大屏幕而不是两个较小的屏幕,在这种情况下,这变得更加困难。

2020-05-19