Как открыть и закрыть дочерние формы MDI, если у них нет ControlBox

Мое приложение MDI показывает одну развернутую дочернюю форму за раз, а дочерние формы не имеют ControlBox. Переключение дочерних форм осуществляется с помощью элементов в MenuStrip в родительском. Мне действительно нужно выяснить, какая дочерняя форма отображается и скрыть ее, прежде чем использовать.show, чтобы увидеть другую?

Кроме того, если я установлю для свойства WindowState значение Maximized для всех дочерних форм и проигнорирую свойство Size, при первом использовании.show в дочерней форме оно НЕ будет развернуто в родительской форме. Как только я использую.hide для дочернего элемента, следующий.show приводит к максимизированной дочерней форме. Есть ли способ увидеть максимальную дочернюю форму при первом показе?

1 ответ

Решение
  1. Обычно вам не нужно прятать одного ребенка mdi, прежде чем показывать следующий, но время может быть перепутано, и в этом случае неправильная форма может оказаться на вершине. Это может произойти при запуске или при загрузке или закрытии файла.

  2. Возможно, дочерняя форма загружается до того, как родитель завершает загрузку, когда родитель еще не развернут. Дочерняя форма может быть правильно развернута у родителя, но тогда родитель становится больше. Вероятно, вы можете исправить это, установив дочернюю форму на максимальный размер (или изменив ее размер?) В родительском событии Shown. Вы также можете сделать это в событии ResizeEnd родителя.

Как говорит Ганс, сейчас более социально приемлемо использовать вкладки вместо MDI, если у вас есть время для изменений.

Другие вопросы по тегам