VB.net - 10 - MDI приложения
Multiple document interface (MDI) — способ организации графического интерфейса пользователя, предполагающий использование оконного интерфейса, в котором большинство окон расположены внутри одного общего окна. Этим он и отличается от SDI, в котором окна располагаются независимо друг от друга.
Вопрос о том, какой тип интерфейса предпочтителен — MDI или SDI — часто становится предметом обсуждений в сообществе разработчиков и пользователей программного обеспечения. SDI, в частности, более удобен тогда, когда пользователь одновременно работает с несколькими приложениями разных типов. Разработчики широко используют оба типа интерфейса, а зачастую и интерфейс смешанного типа. Например, Microsoft меняла интерфейс Microsoft Office от SDI к MDI, а потом вернулась обратно к SDI, хотя степень реализации включает и первое, и второе.
Для создания MDI приложения нам необходимо настроить родительскую, а также дочерние формы.
В свойствах родительской (основной) формы меняем свойство:
IsMdiContainer = true
После чего форма меняет цвет со светло-серого на темно серый.
Для работы нам понадобится элемент меню - MenuStrip.
Обычно меню содержит такие пункты как Файл (новый, сохранить, выход), Работа с окнами (закрыть все, расширить, каскадом, а так же список всех открытых окон). Кроме этого в меню могут быть и другие пункты. Но именно работа с окнами характерны для MDI приложений, по этому о них мы и поговорим в этой статье.
СОЗДАНИЕ НОВОЙ ДОЧЕРНЕЙ ФОРМЫ
По клику в меню Файл - Новое окно - будем вызывать новое окно.
Dim frm As New Form
frm.Show()
Если мы в код запишем такой код, то у нас откроется новая форма. Но она будет пустой, а так же отдельной от родительской.
Так что нам будет необходимо добавить такую строку - frm.MdiParent = Mе.
Dim frm As New Form
frm.MdiParent = Me
frm.Show()
Теперь форма открывается в родительском контейнере, но все же на форме ни чего нет, даже имени.
Это происходит по тому, что за шаблон мы взяли пустую форму.
Теперь добавим в наш проект еще одну форму и разместим на ней, допустим, кнопку. Имя формы (Form2), в этом примере, менять не будем.
Теперь изменим в коде строку Dim frm As New Form2
После нажатия на Файл - Новое окно, в родительской форме будет запускаться наша форма2.
Как вы заметили, все новые формы имеют одно и тоже имя. Что бы каждая форма имела уникальное имя, запишем еще пару строк. И в результате код будет таким:
'Вызов нового дочернего окна
Dim frm As New Form2
Dim cnt As Integer
frm.MdiParent = Me
cnt = Me.MdiChildren.Length
frm.Text += Str(cnt)
frm.Show()
Теперь разберемся с пунктом меню ОКНА.
Закрыть все окна
Dim frm As Form
For Each frm In Me.MdiChildren
frm.Close()
Next
На весь экран
Dim frm As Form
For Each frm In Me.MdiChildren
frm.WindowState = FormWindowState.Maximized
Next
Каскадное расположение окон
Me.LayoutMdi(MdiLayout.Cascade)
Вертикальное расположение окон
Me.LayoutMdi(MdiLayout.TileVertical)
Горизонтальное расположение окон
Me.LayoutMdi(MdiLayout.TileHorizontal)
Смотреть видео
В начало
|