- •12. Работа с несколькими формами.
- •1. Параллельные формы
- •Активизация дополнительной формы – метод Show() этой формы.
- •2. Модальные формы
- •Форма, открытая в модальном режиме, закрывается
- •3. Многодокументный интерфейс
- •Создадим учебный проект, работающий в режиме MDI.
- •Обычно все MDI приложения имеют меню, в котором обязательно присутствует пункт
- •Обычно внутренние окна MDI приложения используются для отображения различных документов.
- •Чтобы дочерняя форма могла отображать текст, установим на неё компонент RichTextBox – текстовый
- •4. Организуем создание нового дочернего окна при выборе пункта New меню File.
- •Теперь в рамках нашего проекта можно открывать сколько угодно дочерних MDI форм.
- •Для управления дочерними окнами со стороны обрамляющей формы последняя имеет следующие свойства:
- •5. Дадим новым дочерним (типа «Окно 1», «Окно
- •6. формы. «Каскад», укажем
- •В том же меню Windows включим отображение имён всех открытых дочерних окон.
- •7. Реализуем реализуем обработку выбора пунктов «Close» и «Exit» из меню «File».
- •Внимание!
- •8. В меню «Edit» добавим пункт «Свернуть все окна».
- •9. В меню «Edit» добавим пункт «Окрасить окна в красный цвет».
- •private void toolStripMenuItem3_Click (object sender, EventArgs e)
- •Задание: Сделать две формы и на каждой из них поставить Numeric UpDown, позволяющий
12. Работа с несколькими формами.
1. Параллельные формы
SDI – Single Document Interface – однодокументный интерфейс – организация проекта, включающего независимые формы.
Добавление новой пустой формы к проекту – команда «Проект / Добавить форму Windows»:
Активизация дополнительной формы – метод Show() этой формы.
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(); f2.Show();
}
2. Модальные формы
В рамках SDI–интерфейса дополнительную (независимую) форму можно открывать в модальном режиме.
Основная особенность – невозможно переключиться на основную форму, пока не закроешь модальную.
Активизация дополнительной формы – метод ShowDialog() этой формы.
private void button2_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(); f2.ShowDialog();
}
Форма, открытая в модальном режиме, закрывается
автоматически, если на ней нажать т.н. «модальную кнопку», т.е. кнопку, свойство DialogResult которой отлично от None.
При этом значение данного свойства модальной кнопки возвращается как результат функции ShowModal.
DialogResult=Yes DialogResult=No
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(); DialogResult DR = f2.ShowDialog();
if (DR == DialogResult.Yes) this.Close();
}
3. Многодокументный интерфейс
MDI – Multiple Document Interface – многодокументный интерфейс – организация проекта, основная форма которого может содержать произвольное количество однотипных дочерних форм.
Создадим учебный проект, работающий в режиме MDI.
1. В новом приложении сделаем единственную форму (Form1) обрамляющим окном MDI.
Для этого установим IsMdiContainer
в true.
В результате текущее окно превращается в контейнер для дочерних форм.
Обычно все MDI приложения имеют меню, в котором обязательно присутствует пункт
Windows.
2. Добавим на форму главное меню – компонент MenuSrtip и настроим его.
Обычно внутренние окна MDI приложения используются для отображения различных документов.
В нашем проекте будем отображать текстовые документы.
3. Создадим форму – шаблон для дочернего MDI-
окна. |
форму, |
Для |
|
используя |
форму |
Windows |
|
Чтобы дочерняя форма могла отображать текст, установим на неё компонент RichTextBox – текстовый редактор.
Чтобы окно текстового редактора заполняло всю клиентскую область дочерней формы, установим значение его свойства Dock равным Fill.