บทที่ 9 การสร้างเมนู

                                                                                                                                                           




การสร้างโปรแกรมที่มีหลายฟอร์ม

 
     สร้างเมนูในการใช้งานโปรมแกรม ทำให้ผู้ใช้สะดวกในการใช้งานโปรแกรม ปกติการสร้างเมนูจะแบ่งหน้าที่การทำงานของเมนูต่างๆ ให้เหมาะสม โดยมักจะมีการกำหนดรูปแบบของเมนูเหมือนกับโปรแกรมมาตรฐานที่ใช้กันโดยทั่วไป ซึ่งผู้ใช้มีความคุ้นเคยทำให้ไม่ต้องเสียเวลาในการเรียนรู้ การเขียนโปรแกรมต้องคำนึงถึงการสร้างฟอร์มให้มีความเหมาะสมกับเมนูที่สร้างขึ้น ซึ่งมีการเขียนโปรแกรมที่แตกต่างกัน
การสร้าง MDI Form
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 ในแนวนอนดังรูป



ไม่มีความคิดเห็น: