Иллюстрированный самоучитель по Visual Basic .NET

Формы MDI

Меню Window реализуется в родительском окне, причем его код может быть достаточно простым:

Public Sub InitializeMenu()
Dim mnuWindow As New MenuItem("&Window")
MainMenu1.MenuIterns.Add(mnuWindow)
mnuWindow.MenuItems.AddCNew Menultem _
("&Cascade", AddressOf WindowCascade_Clicked))
mnuWindow.MenuItems.Add(New Menultem
("Tile &Horizontal", AddressOf WindowTileHoriz_C1icked))
mnuWindow.MenuItems.Add(New Menultem _
("Tile &Vertical". AddressOf WindowTileVert_Clicked))
mnuWindow.MdiList = True
End Sub
Protected Sub WindowCascade_Clicked(ByVal
Sender As Object. ByValeAs System.EventArgs)
Me.LayoutMdi(MdiLayout.Cascade)
End Sub
Protected Sub WindowTileHoriz_Clicked(ByVal Sender As Object._
ByVal e As System.EventArgs)
Me.LayoutMdi(MdiLayout.TileHorizonta1)
End Sub
Protected Sub WindowTileVert_Clicked(ByVal Sender As Object,
ByVal e As System.EventArgs)
Me.LayoutMdi(MdiLayout.TileVertica1)
End Sub

Примерный вид окна, полученного при вызове InitializeMenu для формы из предыдущего примера, показан на рис. 8.13.

Иллюстрированный самоучитель по Visual Basic .NET › Формы Windows, графический вывод и печать › Формы MDI
Рис. 8.13. Типичное меню Window в приложении MDI

Чтобы оповестить родительскую форму об активизации дочернего окна, следует зарегистрировать обработчик для события mdiChildActivate. Активизируемое окно определяется при помощи свойства ActiveMdiChild класса Form. Например, в следующем фрагменте создается обработчик для вывода в строке состояния (элемент StatusBar) родительской формы содержимого заголовка дочернего окна:

AddHandler Me.MdiChildActivate.AddressOf Me.MdiChildActivated.

Остается лишь определить следующую процедуру:

Protected Sub MdiChi1dActivated(sender As object, e As System.EventArgs)
If (Me.ActiveMdiChild < > Nothing) Then statusBarl.Text
Me.ActiveMdiChild.Text
End If
End Sub
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.