解决 获得第二和第三监视器解决方案的最佳方法?

dv2020

成员
加入
2020年12月18日
消息
19
编程经验
1-3
大家好,

一直试图为我的应用程序获取主动屏幕分辨率的最佳方法,因为如果用户将应用程序移动到那里或第3监视器,我试图调整一些字体和按钮。

目前使用下面的代码似乎仅获取主监视器的屏幕大小。
C#:
  screenWidth = Screen.PrimaryScreen.Bounds.Width;
  screenHeight = Screen.PrimaryScreen.Bounds.Height;

有没有人有一个很好的,干净的方式获得用户正在操作的活动监视器的大小,例如,在那里鼠标目前处于活动状态?

提前致谢,

大卫
 
最后编辑了主持人:
Solution
这会检查哪些屏幕表单位置在位置换档事件。请注意,可以在任何屏幕外移动表单,并且该活动屏幕可以为空。
C#:
private void Form4_LocationChanged(object sender, EventArgs e)
{
    var activeScreen = Screen.AllScreens.Where(sc => sc.Bounds.Contains(Location)).FirstOrDefault();
    Console.WriteLine(activeScreen?.DeviceName);
}

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,159
地点
挪威
编程经验
10+
这会检查哪些屏幕表单位置在位置换档事件。请注意,可以在任何屏幕外移动表单,并且该活动屏幕可以为空。
C#:
private void Form4_LocationChanged(object sender, EventArgs e)
{
    var activeScreen = Screen.AllScreens.Where(sc => sc.Bounds.Contains(Location)).FirstOrDefault();
    Console.WriteLine(activeScreen?.DeviceName);
}
 
解决方案

dv2020

成员
加入
2020年12月18日
消息
19
编程经验
1-3
这会检查哪些屏幕表单位置在位置换档事件。请注意,可以在任何屏幕外移动表单,并且该活动屏幕可以为空。
C#:
private void Form4_LocationChanged(object sender, EventArgs e)
{
    var activeScreen = Screen.AllScreens.Where(sc => sc.Bounds.Contains(Location)).FirstOrDefault();
    Console.WriteLine(activeScreen?.DeviceName);
}
谢谢约翰,

这完美无缺。

亲切的问候

大卫
 
最佳 底部