MDI (Multiple Document Interface) เป็นรูปแบบแอพพลิเคชั่นที่มีวินโดว์ย่อย (Child Form) ได้หลายวินโดว์ โดยวินโดว์ย่อยจะอยู่ภายในวินโดว์หลัก (Parent Form หรือ MDI Form)
วินโดว์ย่อยสามารถถูกย่อ ขยาย หรือเปลี่ยนตำแหน่ง ซึ่งจะอยู่ภายในวินโดว์หลักเท่านั้น
ตัวอย่าง

การสร้าง MDI Form
ต้องสร้าง Parent Form และ Child Form ขึ้นมา


กำหนด Form1 ให้ เป็น Parent Form โดยกำหนดที่ หน้าต่าง Properties โดยกำหนดคุณสมบัติดังนี้
IsMdiContainer = True
' ฟอร์มนี้เป็น MDI Form โดยกำหนดเป็น True หรือ False ดังรูป
สำหรับ Child Form จะสร้างเพียงฟอร์มเดียวเพื่อเป็นต้นแบบเท่านั้น ส่วนที่เหลือจะถูกสร้างโดยเขียนโปรแกรม
ตัวอย่าง
สร้าง Child Form โดยยึดแบบ MDIChildForm
Dim ChildForm As New MDIChildForm
ChildForm.MdiParent = Me กำหนด Child Form มี Parent ปัจจุบัน
ออกแบบเมนูด้วย เครื่องมมือ MainMenu ตามรูปข้างล่าง


ต้องการแสดง child form ขึ้นมา เมื่อกด ที่เมนู File >> New
ให้ดับเบิ้ลคลิกที่เมนู New แล้วเขียนโค้ดข้างล่างนี้
Public Class Form1
Dim f1 As Form2
Dim f2 As Form2
Private Sub NewToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewToolStripMenuItem.Click
f1 = New Form2
f1.Show()
f2 = New Form2
f2.Show()
' f1.IsMdiChild = True
f1.MdiParent = Me
f2.MdiParent = Me
End Sub |
LayoutMdi กำหนดการจัดระเบียบให้กับ Child Form โดยมีดังนี้ Tile Horizontally, TileVertical, Cascade, ArrangeIcons
หากต้องการจัดเรียง child form ในแนวตั้งดังรูป

ให้ดับเบิ้ลคลิกที่เมนู window >> Virtical แล้วเขียนโค้ดข้างล่างนี้
Private Sub VerticalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VerticalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
|
หากต้องการจัดเรียง child form ในแนวนอนดังรูป

ให้ดับเบิ้ลคลิกที่เมนู window >> Horizontal แล้วเขียนโค้ดข้างล่างนี้
Private Sub HorizontalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HorizontalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub
|
:: คลิกที่ปุ่ม จะได้ผลลัพธ์ดังนี้
|