|
Пользовательский интерфейс, как правило, бывает одного из двух видов:
1. SDI (Single Document Interface) - однодокументный интерфейс. Все формы приложения равны между собой.
2. MDI (Multiple Document Interface) - многодокументный интерфейс. В приложении имеется одно родительское окно (контейнер), а также одно или несколько дочерних окон. Все дочерние окна имеют общую панель инструментов и главное меню, которое отображается в родительском окне. Примеры MDI-приложений - Excel, Word и т.д.
Стандарт MDI позволяет совершенствовать программы в двух направлениях:
- возможность ограничиться одной формой-контейнером, которая станет рабочим фоном приложения;
- возможность одновременно работать с несколькими документами.
Характеристики родительских MDI-форм:
- Приложение может иметь только одну MDI-форму.
- Родительское и дочерние окна представлены в Windows одной пиктограммой. Если родительское окно минимизируется, а затем восстанавливается, восстанавливаются все дочерние окна.
- Родительское и дочерние окна могут иметь свои меню. Определенное для дочерней формы меню отображается в строке меню родительской формы. Определенное для родительской формы меню не появляется вообще, если активная дочерняя форма имеет собственное меню.
Характеристики дочерних MDI-форм:
- Каждая дочерняя форма располагается во внутренней части родительского окна. Ее нельзя переместить за границы родительской формы.
- Когда минимизируется дочернее окно, его пиктограмма появляется в родительском окне, а не на панели задач Windows.
- Когда максимизируется дочерняя форма, она заполняет все внутреннее окно родительской формы. В строке заголовка родительской формы указывается название родительской формы и дочерней.
- Когда максимизируется одна дочерняя форма, максимизируются все остальные дочерние формы.
Для создания приложений с MDI интерфейсом необходимо создать родительскую форму, для чего значение свойства IsMDIContainer должно быть True. Окно становится о как бы «вдавленным», а цвет фона темно-серым.
После чего создаются экземпляры дочерних форм (один или несколько). Для каждой из дочерних форм значение свойства MdiParent устанавливается так, чтобы оно указывало на родительскую форму.
Любая MDI-форма имеет свойство-массив MdiChildren, который содержит все дочерние окна.
Для создания нового экземпляра дочерней формы MyChild1 можно использовать:
Dim MyChildForm1 As New MyChild1()
' Устанавливаем свойство MdiParent на форму MyMDIParent (текущую)
MyChildForm1.MdiParent = Me
' Отображаем дочернюю форму
MyChildForm1.Show()
Чтобы оповестить родительскую форму об активизации дочернего окна, используется события mdiChildActivate. Активизируемое окно определяется при помощи свойства ActiveMdiChild класса Form.
Пример: в строке состояния родительской формы выводится содержимого заголовка дочернего окна:
Protected Sub MdiChildActivated(sender As object, e As System.EventArgs)
If (Me.ActiveMdiChild<>Nothing) Then statusBar1.Text=Me.ActiveMdiChild.Text
End If
End Sub
Чтобы облегчить способ доступа к дочерним окнам приложения, можно создать список открытых дочерних окон. Автоматическая поддержка списка дочерних окон включается во время создания меню родительской MDI-формы. Для этого необходимо свойству MdiList пункта меню установить значение True.
| < Предыдущая | Следующая > |
|---|





