The Multiple Document Interface (MDI) การประสานเอกสารหลายรูปแบบ
MDI เป็นการออกแบบโปรแกรมให้สามารถแสดงสารสนเทศ ของงานที่กำลังทำอยู่ได้มากกว่าหนึ่งงาน ทำให้เกิดความสะดวกในการแลกเปลี่ยนข้อมูลระหว่างงานได้ ตัวอย่างโปรแกรมประยุกต์ที่งานในลักศณะนี้คือ โปรแกรมไมโครซอฟต์เวิร์ด โปรแกรมเพาเวอร์พอยต์ เป็นต้น
โปรแกรมไมโครซอฟต์เวิร์ด
เอกสารหลายรูปแบบ ประกอบด้วย เอกสารหลายรูปแบบ ประกอบด้วย แบบฟอร์มแม่ (Parent Form) ในหนึ่งโปรแกรมจะ มีแบบฟอร์มนี้เพียงแบบเดียว โดยปกติ จะเป็น ที่พักของแบบฟอร์มลูกจะไม่มีการนำวัตถุควบ คุมใด ๆ มาวางลง คงมีได้เฉพาะเมนูเท่านั้น แบบฟอร์มลูก (Child Form ) มีได้ตั้งแต่ 1 แบบ ฟอร์ม ขึ้นไป เป็นที่วางวัตถุควบคุมต่าง ๆ และอาจมีเมนูของตัวเองก็ได้
ชื่อบบฟอร์มลูก เมนู ชื่อแบบฟอร์มแม่ แบบฟอร์มแม่
ขั้นตอนการสร้าง MDI
ดับเบิลคลิก
ขั้นตอนการเพิ่มแบบฟอร์มแม่และแบบฟอร์มลูก
แบบฟอร์มลูกทุกฟอร์ม ต้องกำหนดคุณสมบัติ MDIChild ให้เป็น True
ก่อนสั่ง Run โปรแกรมครั้งแรก ต้องสั่งให้เริ่มทำงานที่ MDIForm1 ตามขั้นตอนต่อไปนี้
คลิก OK คลิกหัวลูกศร แล้วคลิก MDIForm1 คลิกเมนู Project แล้วคลิก Project Properties….
คุณสมบัติสำหรับจัดแบบฟอร์มลูก ค่าคงที่ ค่า ความหมาย vbCascade 0 วางซ้อนกัน vbHorizontal 0 วางเรียงตามแนวนอน vbVertical 0 วางเรียงกันตามแนวตั้ง
กล่องสนทนาสำหรับสร้างเมนู
Caption สำหรับตั้งชื่อเมนู ชื่อนี้จะปรากฎตรงแถบเมนู ถ้าต้องการกดแป้นอักษรตัวหนึ่งใดของชื่อแทนการคลิกชื่อ ให้ใส่ & หน้าอักษรตัวนั้น Name ชื่อเมนูที่จะนำไปใช้ในการเขียนโปรแกรม ShortCut เลือกแป้นควบคุมสำหรับเมนูนี้ HelpContextID กำหนดหมายเลข เพื่อไปหาข้อความในแฟ้มขอความช่วยเหลือ
NegotiatePosition เลือกตำแหน่งที่จะให้แสดงชื่อเมนูวนั้น Checked ให้มีเครื่องหมายถูกอยู่ที่หน้าชื่อหรือไม่ Enabled ยอมให้ชื่อเมนูตอบสนองต่อเหตุการณ์ เช่น ให้เลือน หรือเรียกใช้งานไม่ได้ เป็นต้น Visible ให้ชื่อเมนูปรากฎให้เห็นหรือไม่
เลื่อนชื่อไปทางซ้าย 1 ระดับ เลื่อนชื่อไปทางขวา 1 ระดับ เลื่อนชื่อลง 1 ระดับ เลื่อนชื่อขึ้น 1 ระดับ Next เพื่มชื่อต่อจากชื่อเดิม Insert แทรกชื่อ Delete ลบชือ WindowList ให้แสดงรายการฟอร์มลูกที่เปิดอยู่
คำสั่งให้นำแบบฟอร์มลูกเข้าและออกจากหน่วยความจำ รูปแบบ Load FormName Unload FormName ตัวอย่าง Load Form1 Unload Form1
คำสั่งให้แสดงและซ่อนแบบฟอร์ม รูปแบบ FormName.Show FormName.Hide Me.Hide ตัวอย่าง Load Form1 Unload Form1
การสร้างเมนู 3 ระดับ
คลิกเมนู Tools และ Menu Editor
กำหนดเมนูระดับ 1 ชื่อ File ชื่อในโปรแกรม MnuFile เมนูระดับ 2 ภายใต้เมนู File ชื่อ Open ชื่อในโปรแกรม MnuOpen
เมนูระดับ 3 ภายใต้เมนู Open ชื่อ ชื่อในโปรแกรม Open Form1 MnuOpenForm1 Open Form2 MnuOpenForm2 Open Form1 MnuOpenForm3 Open All MnuOpenAll
เมนูระดับ 2 ภายใต้เมนู File ชื่อ Close ชื่อในโปรแกรม MnuClose เมนูระดับ 3 ภายใต้ Close ชื่อ ชื่อในโปรแกรม Close Form1 MnuCloseForm1 Close Form2 MnuCloseForm2 Close Form1 MnuCloseForm3 Close All MnuCloseAll
เมนูระดับ 2 ภายใต้เมนู File ชื่อ Exit ชื่อในโปรแกรม MnuExit เมนูระดับ 1 ชื่อ Window ชื่อในโปรแกรม MnuWin ต้องคลิกที่ WindowList เพื่อให้แสดงชื่อและสถานะของแบบฟอร์มลูก
เมนูระดับ 2 ภายใต้ Window ชื่อ ชื่อในโปรแกรม Cascade MnuCascade TileHorizontally MnuTileHor TileVertically MnuTileVer
เขียนโปรแกรมให้ MDIForm และเมนู
ทดลอง Run โปรแกรม
คลิกเมนู File และ Open
คลิกเมนู File และ Close
คลิกเมนู File , Open และ OpenForm1
คลิกเมนู File , Open และ OpenAll คลิกเมนู Window คลิก TileHorizontally