У меня есть основной вид «MainForm» с IsMdiContainer = верноКак определить местоположение экрана дочерней формы MDI?
Я один или более динамически создаются дочерние формы, где я установил MdiParent = MainForm
Теперь то, что я хочу сделать, это быть в состоянии отделить эти дочерние формы, установив MdiParent = null, но с сохранением того же местоположения на экране.
Я попытался использовать ChildForm.PointToScreen (ChildForm.Location), но это дает мне расположение экрана относительно клиентской области формы.
EDIT
PointToScreen() на самой форме дает мне почти правильное расположение, за исключением того, что она дает расположение экрана 0,0 внутри формы, в то время как .Location относится к внешнему краю форма.
Это не работает, поскольку у меня есть другие элементы, закрепленные в «MainForm». Приведенный выше код будет позиционировать форму с таким же относительным расстоянием до «MainForm», как ранее в области MdiClient. –
Вам нужно будет найти окно MdiClient, чтобы вы могли использовать его метод PointToScreen. Найдите его, итерируя родительскую коллекцию Controls, проверьте с помощью «is MdiClient». Или просто отрегулируйте положение. –
Добавлен сниппет обновлен. –