我想详细说明整个表单在屏幕上是否可见。为了澄清这一点:我不在乎表单是部分还是完全被另一个表单隐藏,我只想知道,如果表单完全在屏幕上。检查表单是否在所有屏幕的边界
在Windows中,可以移动窗体,使其隐藏一半。这是因为你可以将它们移动到任何显示器的实际边界之外。 (进一步向左,向右或向下)。如何以简单的方式检查是否属于这种情况?
我想我可以做的是检查表单是否在SystemInformation.VirtualScreen
的范围内。这里的问题是,虚拟屏幕的每个像素都不是真正可见的。当然,这将工作,如果SystemInformation.MonitorCount = 1
仍然我不是很满意这一点。
好吧,我只需要在这里构建一个不起眼的例子。想象一下,三台显示器相互对齐,每台宽800px。显示器1和3高600px,显示器2(中间一个)高400px。虚拟屏幕的房地产将是1800px * 600px。如果显示器2将在其他显示器的顶部对齐,则虚拟屏幕底部将会有200px,这是不可见的。现在我可以跨越显示器1到显示器3的一个窗口,整个窗体将不可见,显示器2上的底部将被遗漏。 –
那么,您需要编写更多的代码来处理这种情况。祝你好运。 –
我知道,这只是一个非常构建的例子。我希望它永远不会这样。 –