Задать вопрос
adressmoeistranici
@adressmoeistranici
Делатель

Как узнать номер рабочего стола на котором окно?

Как узнать из окна win forms на каком рабочем столе по номеру оно расположено в Windows?
Есть событие что окно переместилось на другой рабочий стол?
  • Вопрос задан
  • 1062 просмотра
Подписаться 4 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
lexxpavlov
@lexxpavlov
Программист, преподаватель
Если вам нужно именно номер монитора, а не рабочего стола, то вам нужен класс System.Windows.Forms.Screen, который имеет много полезного. Например, Screen.FromControl(), Screen.FromHandle() и пр. Или можно использовать свойство AllScreens, хранящее все мониторы системы.
Тут есть нюанс - FromHandle берёт не верхнюю левую точку окна, а середину верхней границы окна. Смотрите, что вам нужно.
И ещё один нюанс - номера мониторов в списке AllScreens могут не совпадать с номером монитора в настройках экранов Windows. Этот виндовский номер монитора я так и не смог найти. Виндовские номера зависят порта видеокарты, к которому они подключены.
Ответ написан
@John_Nash
coder
Я так понимаю, речь идет про несколько мониторов, а не несколько рабочих столов. Если первое, то копать нужно от функции EnumDisplayMonitors
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы