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


Формы MDI


В прежних версиях VB при программировании приложений с интерфейсом MDI (Multiple Document Interface) родительская форма MDI выбиралась на стадии конструирования. В .NET эта задача решается иначе — свойству IsMdiContainer формы задается значение True. Программист создает дочерние формы MDI на стадии конструирования или выполнения, а затем заносит в их свойство Mdi Parent ссылку на форму со свойством I sMdi Conta i пег, равным True. Таким образом, в программах VB .NET можно сделать то, что было практически нереально в предыдущих версиях VB, — изменять связи MDI во время работы программы. Кроме того, приложение может содержать несколько родительских форм MDI; в VB6 такая возможность не поддерживалась.

Рассмотрим пример. Создайте приложение со следующей процедурой Forml_Load:

Private Sub Forml_Load(ByVal sender As System.Object._

ByVal e As System.EventArgs) Handles MyBase.Load

Me.Text = "I'm an MDI Parent"

Me.IsMdiContainer - True

Dim MyChild As New System.Windows.Forms.Form()

MyChiId.MdiParent = Me

MyChild.Show()

MyChild.Text ="MDI Child" End Sub

Примерный вид окна показан на рис. 8.12.

Конечно, это весьма жалкое подобие приложения MDI. В приложениях MDI обычно присутствует меню Window, позволяющее расположить открытые дочерние окна «черепицей» или «мозаикой», а также активизировать любое дочернее окно. Меню 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




- Начало -  - Назад -  - Вперед -



Книжный магазин