Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试从 Screen 对象的 Screen.AllScreen 数组中查找哪个屏幕包含活动窗口,因此我可以使用该屏幕来显示一个新窗口。
我能想到的最好方法是调用以获得前景活动窗口,然后以某种方式从该对象中找到某种屏幕位置,然后将该点与屏幕对象区域数组进行比较,以查看它是否包含在那里。左上角就足够了,我将忽略同时在多个显示器上显示活动窗口的可能性。
有没有更简单的方法可以避免 pinvoke 的 getforegroundwindow 和包含的点迭代搜索?
只需使用静态方法Screen.FromHandle()来获取包含活动表单最大部分的屏幕(by Handle),如下所示:
Screen.FromHandle()
Handle
Screen scr = Screen.FromHandle(GetForegroundWindow());
还有 3 个静态方法Screen来自Control,Point和Rectangle.
Screen
Control
Point
Rectangle