|
หากใครที่ติดตามผลงานของแอดมินมาตลอด ให้สังเกตว่าเวลาที่แอดมินออกแบบหน้าตาโปรแกรม เพื่อให้เกิด ความเป็นมิตรกับผู้ใช้ (User-Friendly) มากที่สุด แอดมินจะสร้างหน้าจอ (ฟอร์ม) ให้ User ใช้งานเพียงหน้าจอเดียว เช่น หน้ารายการขายสินค้า เวลาเลือกรายชื่อลูกค้าเข้ามา ก็จะเกิดการเปิดฟอร์มลูกค้าขึ้นมาเพื่อให้เลือก หรือเพิ่ม หรือแก้ไขได้เลยทันที โดยไม่ต้องปิดฟอร์มการขาย แล้วกลับไปทำรายการลูกค้าก่อน หรือแม้แต่การเลือกรายชื่อสินค้า หรืออื่นๆ ก็จะใช้วิธีเดียวกัน เรื่องแบบนี้มันต้องมีเงี่ยนงำแน่ๆ 5555+ ...
ติ๊บเล็กๆนี้สำคัญมาก ในการทำฟอร์มลูก (MDI Child Form) สามารถแสดงผลฟอร์มแบบอยู่บนสุดได้ หรือที่เราเรียกว่า Modal (หากไม่ใช่เราเรียกว่า Modaless) ซึ่งใน VB6 มันทำไม่ได้ หากเรากำหนดให้มันเป็นฟอร์มลูก (SDI - Single Document Inteface) ของ MDI Form (Multiple Document Interface) แต่สำหรับ VB.NET กลับทำได้ง่ายดายมาก ความสำคัญมันอยู่ที่ตอนนำไปใช้งาน ...
มาดูโค้ด(ง่ายๆ)กันเถอะ ... (สำหรับ MDI Form)
- Public Class MDIForm
- Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click
- '// แจ้งว่าไม่ใช่เกิดการเรียกฟอร์มแบบ Modal
- blnSubForm = False
- '// มีการเปิดฟอร์มค้างไว้บนหน้าจอหรือไม่
- If Application.OpenForms().OfType(Of Form1).Any Then
- With Form1
- .Focus()
- End With
- '// ไม่มีการเปิดฟอร์ม ก็ทำการเปิดขึ้นมาใหม่ โดยกำหนดให้เป็น Form1 เป็นฟอร์มลูกของ MDIForm
- Else
- With Form1
- '// กำหนดฟอร์ม Form1 ให้เป็นฟอร์มลูกของฟอร์มหลัก
- .MdiParent = Me
- .Show()
- End With
- End If
- End Sub
- Private Sub ToolStripButton2_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton2.Click
- blnSubForm = False
- '/
- If Application.OpenForms().OfType(Of Form2).Any Then
- With Form2
- .Focus()
- End With
- Else
- With Form2
- .MdiParent = Me
- .Show()
- End With
- End If
- End Sub
- End Class
คัดลอกไปที่คลิปบอร์ด
โค้ดสำหรับการเรียกเปิดจากฟอร์มลูก (MDI Child Form) ...
- Public Class Form1
- Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- '// หากเป็นฟอร์มแบบ Modal ให้ปิดการมองเห็นของปุ่ม
- If blnSubForm Then
- Button1.Visible = False
- Else
- Button1.Visible = True
- End If
- End Sub
- Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
- '// เปิดฟอร์มแบบ Modal
- blnSubForm = True
- '// สร้าง Instance Name ของ Form2 ขึ้นมาใหม่
- Dim frm As New Form2
- '// โชว์ฟอร์มแบบ Modal
- frm.ShowDialog()
- End Sub
- End Class
คัดลอกไปที่คลิปบอร์ด
สิ่งที่สำคัญคือ การใช้ตัวแปรแบบ Public ในการกำหนดการแสดงผล เวลาที่ฟอร์มลูกมันถูกเรียกขึ้นมาใช้งานในแต่ละครั้ง ...
- Module Module1
- Public blnSubForm As Boolean
- End Module
คัดลอกไปที่คลิปบอร์ด
ดาวน์โหลดโค้ด VB.NET (2010) ได้ที่นี่ ...
|
|