Как я могу проверить, что окно полностью отображается на экране пользователя?

Есть ли способ проверить, что WinForm полностью виден на экране (например, не за пределами экрана?)

Я пробовал использовать для этого SystemInformation.VirtualScreen, который отлично работает, пока виртуальный экран представляет собой прямоугольник, но если это не так (например, 3 экрана в форме L) , SystemInformation.VirtualScreen возвращает наименьший прямоугольник, содержащий все видимые пиксели (поэтому окно в верхнем правом углу буквы L не будет видно, хотя оно находится на виртуальном экране)


Причина, по которой я пытаюсь достичь этого, заключается в что я бы хотел, чтобы моя программа открывала свои дочерние окна в том месте, где они были в последний раз, но я не хочу, чтобы это окно было вне поля зрения, если использование r меняет настройку (например, отключает дополнительный экран своего ноутбука)

12
задан Brann 6 July 2011 в 02:58
поделиться