Создаём MDI приложение с помощью Windows Forms

MDI приложения позволяют отображать несколько дочерних окон внутри одного главного окна. Что даёт возможно более рационально использовать пространство на экране и в ряде случаев повышает удобство работы с многооконным приложением.

Существует два основных подхода к реализации многооконных приложений:

  • Простое приложение.
    Каждое дочернее окно отображается отдельно.
  • Multiple Document Interface (MDI).
    Дочерние окна отображаются внутри одного «главного» окна.

Не редко оба подхода комбинируются. Например, небольшие вспомогательные диалоги отображаются отдельно, а окна содержащие основной функционал внутри «главного» окна.

Ниже на скриншоте показан пример простого приложения и приложения MDI.

Простое приложение
MDI приложение
Создание приложения MDI

Для того чтобы создать MDI приложение необходимо у формы, которую планируется сделать «главной» установить свойство IsMdiContainer = true. Тогда она сможет размещать внутри себя дочерние формы.

При вызове дочерних форм, чтобы они размещались внутри «главной», необходимо задать «главную» форму в свойстве MdiParent.

Ниже приведён пример вызова дочерней формы из главной.

Управление расположением дочерних окон

Если в MDI приложении открыто большое количество дочерних форм, работать с ними может оказаться неудобно. Чтобы хотя бы частично решить данную проблему предусмотрена возможность упорядочения расположения дочерних форм внутри главной. Существуют три типа такого упорядочения:

  • Каскадом;

  • По горизонтали;

  • По вертикали.

Упорядочение задаётся при помощи метода LayoutMdi «главной формы». Этот метод принимает единственный параметр типа MdiLayout, который собственно и задаёт тип упорядочения.

Ниже приведены примеры всех трёх типов упорядочения.

Упорядочение каскадом:

 

Упорядочение по горизонтали:

 

Упорядочение по вертикали:

 

Функционал связанный с поддержкой MDI приложений в Windows Forms может показаться даже слишком простым, но его возможностей на самом деле хватает для решения задач любой степени сложности.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *