Създаване на апликации с
многодокументен интерфейс - Multiple Document Interface
MDI апликациите се състоят от
MDI родителска форма и
MDI дъщерни форми. Eдна
MDI апликация дава възможност да се разграничи дъщерната
форма, която има фокуса. Често
MDI апликациите
позволяват на потребителя да превключва между прозорците и да ги аранжира
хоризонтално, вертикално и каскадно. Първо
нека да видим как да създадем
MDI родителска форма.
Създаване на Родителска форма - MDI Parent Form
MDI родителската (parent) форма е сърцето на
MDI апликацията. Тя е контейнер на много документи--така наречените дъщерни форми--вътре в
MDI апликцията.
Можете да използвате свойство
IsMDIContainer да създадете
MDI родителска форма. Следвайте тези
стъпки за да конструирате
MDI parent
form:
1. Създайте нова форма и я
отворете в прозореца
Code window.
2. В конструктора на вашата
форма, добавете следния код:
Me.IsMDIContainer = True
Потребителят
има достъп да работи с
MDI дъщерни
форми, когато родителската е максимизирана. Можете да максимизирате
родителската форма като поставите
WindowState свойството в
Maximized.
Създаване на Дъщерни форми - MDI Child Form
MDI child forms са форми, които оперират вътре в
MDI родителската форма. В
MDI апликацията, те са формите, с които си служи
потребителят. Създаването на дъщерна
MDI форма е стъпкова процедура, която
ще упражним с пример.
Пример:
Създаване на MDI дъщерна форма
В
този пример ще създадем родителска форма -
MDI parent form, и дъщерна
форма -
MDI child form. Нова инстанция на дъщерна форма
ще се визуализира чрез бутон на родителската форма.
Създаване
на MDI Parent Form
1.
От меню
File, селектирайте
New Project.
2.
В списъка
Visual Basic Projects, селектирайте
Windows Application шаблона
и след това клик на
OK.
3. В прозореца за свойства
Properties Window, поставете свойство
IsMDIContainer в
True, и след това свойство
WindowState в
Maximized.
Създаване
на MDI Child Form
1.
От меню
Project, селектирайте
Add Windows Form.
2.
В списъка
Local Project Items, селектирайте шаблона
Windows Form и
след това клик на
Open.
Визуализиране
на MDI Child Form
1. Селектирайте родителската
MDI parent form.
2. От
Toolbox, селектирайте панел
Win Forms и два пъти клик върху контрол
Button , за да го пъхнете във формата.
3. На родителската
MDI parent form, два пъти клик върху бутона. Заместете манипулатора
на събитието (
event handler)
Click със следния код за създаване на
нова
MDI child форма,
когато се кликне върху бутона:
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim frmNewMDIChild As New Form2()
frmNewMDIChild.MDIParent = Me
frmNewMDIChild.Show()
End Sub
Когато
потребителят кликне върху бутона на родителската
MDI форма, се появява нова дъщерна
форма. Задача на разработчика е да управлява дъщерните форми. За радост,
Windows Forms рамковата работна среда предлага
много свойства и методи, за да направи живота на разработчика лесен.
Определяне на активната MDI дъщерна форма
В
MDI апликацията, активна дъщерна форма е тази, която има фокуса или е имала
последна фокуса. По някое време, вие може да се нуждаете да
идентифицирате активната дъщерна форма. Примерно, да предположим, че имаме меню
Close подменю в меню
File на вашата родителска форма.
Защото апликацията може да има много инстанции на една и съща дъщерна форма вие
трябва да можете да затворите отделно дъщерна форма: това е активната
дъщерна форма. Можете да използвате свойство
ActiveForm на родителската форма, за да
разграничите активната дъщерна форма. Следния код на родителската форма, затваря активната дъщерна
форма:
Protected Sub mnuFileClose_Click(ByVal sender as System.Object, ByVal e as System.EventArgs)
frmMDIParent.ActiveForm.Close()
End Sub
Аранжиране на дъщерните MDI форми
MDI родителските форми често поддържат меню
Window с
подменюта
Arrange,
Cascade,
Tile,
Horizontal,
и
TileVertical.
Потребителят може да кликне върху тези менюта, за да аранжира дъщерните
форми. Можете да обезпечите тази функционалност чрез метод
LayoutMDI на родителската форма и преброяването
MDILayout (enumeration). Можете
да избирате от четири възможности на
MDILayout enumeration, описани
в таблицата.
Таблица Възможности за
MDILayout подреждане (Enumeration)
Възможности | Описание |
ArrangeIcons | Показва
дъщерните форми като икони в долния край на родителската форма. |
Cascade | Показва
дъщерните форми каскадно. |
TileHorizontal | Показва
дъщерните форми хоризонтално. |
TileVertical | Показва
дъщерните форми вертикално. |
Представете
си, че искате да разпределите дъщерните
форми хоризонтално, когато потребителят кликне
съответното меню:
Protected
Sub mnuWindowTileHorizontal_Click _
(ByVal sender as System.Object, ByVal e as
System.EventArgs)
frmMDIParent.LayoutMDI(MDILayout.TileHorizontal)
End Sub
Досега
дискутирахме създаване и манипулиране на форми.