Создание родительской формы

We use cookies. Read the Privacy and Cookie Policy

Создание родительской формы

Для демонстрации основ процесса построения MDI-приложения создайте новое приложение Windows, назвав его SimpleMdiApp. При этом почти вся MDI-ин-фраструктура может быть назначена исходной форме с помощью различных инструментов проектирования. Сначала найдите свойство IsMdiContainer в окне свойств и установите его равным true (истина). В результате в окне проектирования формы область клиента изменится – теперь она будет визуально представлять контейнер дочернего окна.

Затем разместите в главной форме новый элемент управления MenuStrip. В этом меню укажите три элемента высшего уровня с названиями Файл, Окно и Упорядочить окна. Меню Файл содержит два подчиненных элемента с названиями Создать и Выход. Меню Окно не содержит никаких подчиненных элементов, потому что при создании пользователем дополнительных дочерних окон новые элементы предполагается добавлять программно. Наконец, меню Упорядочить окна определяет три подчиненных элемента с названиями Каскадом, По вертикали и По горизонтали.

После создания меню пользовательского интерфейса обработайте событие Click для пунктов меню Выход, Создать, Каскадом, По вертикали и По горизонтали (напомним, что меню Окно пока что не имеет никаких подчиненных элементов). Обработчик элемента Файл?Создать мы реализуем в следующем разделе главы, а сейчас рассмотрим программный код для остальных элементов меню.

// Обработка события Файл | Выход и упорядочение дочерних окон.

private void cascadeToolStripMenuItem_Click(object sender, EventArgs e) {

 LayoutMdi(MdiLayout.Cascade);

}

private void verticalToolStripMenuItem_Click(object sender, EventArgs e) {

 LayoutMdi(MdiLayout.TileVertical);

}

private void horizontalToolStripMenuItem_Click(object sender, EventArgs e) {

 LayoutMdi(MdiLayout.TileHorizontal);

}

private void exitToolStripMenuItem_Click (object sender, EventArgs e) {

 Application.Exit();

}

Наибольший интерес здесь представляет использование метода LayoutMdi() и соответствующего перечня MdiLayout. Программный код обработки выбора каждого из элементов меню должен быть вам понятен. При выборе элемента пользователем вы даете указание родительской форме выполнить автоматическое размещение всех дочерних окон.

Перед тем как перейти к обсуждению процесса создания дочерних форм, установите еще одно свойство MenuStrip. Свойство MdiWindowListItem используется доя того, чтобы выяснить, какой пункт меню наивысшего уровня должен использоваться для автоматического списка имен всех дочерних икон при соответствующем выборе из меню. Присвойте значение этого свойства члену-переменной windowToolStripMenuItem. По умолчанию для этого списка используется значение дочернего свойства Text с числовым суффиксом (т.е. Form1, Form2, Form3 и т.д.).