如何判断我的表单是否显示在屏幕之外?

Mal*_*ist 0 c# screen-positioning .net-3.5 winforms

所以我有两种形式,mainform和extraform.
当mainform初始化时,extraform设置总是移动到mainform的右侧
有时mainform占用两个监视器并且extraform被推离屏幕永远不会再被看到.我想尽可能防止这种情况发生.我怎么能这样做?它必须支持双显示器,它们之间可能有或没有距离(即屏幕1是屏幕2左侧的20px).

我怎样才能做到这一点?

and*_*axo 6

您可以使用Screen类来确定窗口相对于桌面的位置.Screen类有一个FromRectangle方法,因此你可以找出你应该在哪个屏幕上定位你的Form(通过传递你的表单的Bounds属性).

每个Screen对象都有一个Bounds属性,您可以使用该属性来比较窗口的位置和大小,并相应地调整它们.