У меня есть очень простой mdiparent из коробки, в котором есть несколько mdichildren и пункт меню. Каждая кнопка в пункте меню скрывает все формы, а затем показывает форму, соответствующую этой кнопке.
Когда я делаю это так:
//dontHide is the Form we want to show.
for(int i = 0; i < this.MdiChildren.Length; i++)
{
if (this.MdiChildren[i] != dontHide)
{
this.MdiChildren[i].Visible = false;
}
}
dontHide.Visible = true;
Переключение форм приводит к тому, что новая открытая форма располагается немного ниже и правее старой формы, но щелчок по пункту меню для текущей отображаемой формы ничего не делает (как и ожидалось).
Но, когда я делаю это:
//dontHide is the Form we want to show.
for(int i = 0; i < this.MdiChildren.Length; i++)
{
this.MdiChildren[i].Visible = false;
}
dontHide.Visible = true;
Даже щелчок по элементу меню для видимой в данный момент формы приводит к его смещению в нижний правый угол, как при открытии новой формы. Это почему?
Редактировать:
Я также заметил, что при центрировании формы, а затем ее отображении (чтобы вы не рискуете, что кто-то увидит ее прямо перед тем, как она будет перемещена), установка для параметра visible значения true полностью сбрасывает любое центрирование, которое я сделал.