Многодокументный интерфейс (Multiple Document Interface, MDI) используется для приложений, которые могут в клиентской области основной формы показывать много экземпляров одного или разных типов форм, которые показывают разное содержание (документы), например редактор текстов, который одновременно показывает в разных дочерних окнах содержание разных документов. Однако следует понимать, что под документом понимается не только текст, но и информация любого другого типа (изображение, таблицы данных, видео и т. п.). Используемые дочерние формы не выходят за границы основной формы приложения.
Для организации MDI интерфейса следует в основной форме приложения задать свойству IsMDIContaner значение true. А для того чтобы дочерние окна вели себя соответствующим образом (открывались в родительском окне), у них нужно присвоить свойству MdiParent ссылку на данную родительскую форму. Например, в методе основной формы можно создать метод, который будет показывать дочерние формы:
private void ShowMdiChild (Form childForm) {.
childForm.MdiParent = this; // this — основная форма.
childForm.Show ();
}.
В основной форме может быть открыто одновременно много дочерних форм. Свойство формы ActiveMdiChild ссылается на окно, с которым работает в данный момент пользователь. Используя данное свойство, можно получить все данные, связанные с этой формой. Дочерние формы можно упорядочивать, вызывая метод LayoutMdi (), который в качестве параметра принимает значения перечисления MdiLayout. Возможными значениями данного перечисления являются: Cascade (упорядочить каскадом), TileHorizontal (упорядочить горизонтально) и TileVertical (упорядочить вертикально).
В системе разработки Visual Studio имеется специальный вид форм, у которого уже задано не только свойство IsMDIContaner = true, но и созданы меню и инструментальная полоса для выполнения стандартных операций с дочерними формами.