Как легко найти расположение экрана формы Расположение в среде с несколькими мониторами?
В приложении winform C#, работающем в среде с несколькими мониторами (рабочий стол растянут на 2 или 3 монитора), свойство Location формы представляет местоположение формы на составном рабочем столе, а не местоположение формы на физическом экране. Существует ли простой способ найти расположение формы в экранных координатах для экрана, на котором она находится? Так что, если форма находится в верхнем левом углу 2-го или 3-го дисплея, местоположение будет (0,0)?
1 ответ
Решение
/// <summary>Returns the location of the form relative to the top-left corner
/// of the screen that contains the top-left corner of the form, or null if the
/// top-left corner of the form is off-screen.</summary>
public Point? GetLocationWithinScreen(Form form)
{
foreach (Screen screen in Screen.AllScreens)
if (screen.Bounds.Contains(form.Location))
return new Point(form.Location.X - screen.Bounds.Left,
form.Location.Y - screen.Bounds.Top);
return null;
}