我正在尝试从 Screen 对象的 Screen.AllScreen 数组中查找哪个屏幕包含事件窗口,以便我可以使用该屏幕来显示新窗口。
我能想到的最好方法是 pinvoke 来获取前台事件窗口,然后以某种方式从该对象中找到某种屏幕位置,然后将该点与屏幕对象区域数组进行比较,看看它是否包含在那里。左上角就足够了,我将忽略事件窗口同时显示在多个显示器上的可能性。
是否有更简单的方法可以避免 pinvoke 的 getforegroundwindow 和包含点迭代搜索?
最佳答案
只需使用静态方法 Screen.FromHandle()
即可获取包含事件表单最大部分的屏幕(通过 Handle
),如下所示:
Screen scr = Screen.FromHandle(GetForegroundWindow());
还有 3 个静态方法可以从 Control
、Point
和 Rectangle
获取 Screen
。
关于c# - 是否有现成的方法可以确定事件窗口位于多个屏幕中的哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17736747/