เมนู
เมนู เป็น intrinsic control แต่ลักษณะต่างจากตัว control อื่น ที่มีการสร้างโดยใช้คำสั่ง Menu Editor ในเมนู Tools แถบเมนูจะอยู่ที่ตำแหน่งใต้แถบชื่อฟอร์มและมีชื่อเมนู ตั้งแต่ 1 ขึ้นไป เมื่อคลิกที่ชื่อเมนู (เช่น File) จะปรากฏรายการของเมนู เช่น คำสั่ง เมนูย่อย
ในการสร้างเมนู ควรจัดกลุ่มคำสั่งให้สอดคล้องกับการทำงาน เมนู File มีคำสั่ง New, Open และ Save สำหรับการกำหนดคุณสมบัติของเมนู เป็นการกำหนดด้านความสวยงามและพฤติกรรม ได้แก่ การกำหนด Caption คุณสมบัติ Enabled และ Visible คุณสมบัติ Check ในขณะที่ออกแบบ event ของเมนูมี event เดียว คือ Click
วิธีการสร้างเมนู
1. ที่เมนู Tools เลือก Menu Editor (Tools ->Menu Editor) หรือคลิกปุ่ม บนแถบเครื่องมือ
2. เมื่อปรากฏไดอะล๊อกบ๊อกซ์ การสร้างเมนู ให้กำหนดข้อความ (Caption) เช่น &File ซึ่ง & ใช้กำหนด Hot key หรือ Access key โดยจะมีเส้นใต้ของตัวอักษรที่ติดกับสัญลักษณ์
3. ชื่อเมนู (Name) เช่น mnuFile ซึ่งต้องเป็นชื่อที่ไม่ซ้ำ
4. Index ให้ข้ามไป (Index ใช้กับ เมนูแบบ control array)
5. Shortcut เป็นการกำหนดคีย์ลัดในการเรียกคำสั่ง สำหรับ เมนู File ให้ข้ามไป
6. แล้วคลิก Next เพื่อสร้างเมนูคำสั่ง เมื่อแถบสีน้ำเงินอยู่บนที่ว่าง และคำสั่งต่อไป คือ New (สร้างไฟล์ใหม่) ให้คลิกปุ่มลูกศรขวาเพื่อเพิ่มระดับเนื่องจากต้องการให้ New เป็นรายการย่อยในเมนู File
7. ให้ทำตามซ้ำขั้นตอนที่ 2 ถึง 6 ใหม่ โดยตั้งค่า Caption เป็น &New ชื่อเมนู (Name) เป็น mnuFileNew Shortcut กำหนดเป็น Ctrl + N โดยเลือกจากรายการ
8. สำหรับคำสั่งต่อไปให้ซ้ำขั้นตอนที่ 2 ถึง 6 จนได้คำสั่งครบตามที่ต้องการ
ถ้าต้องการสร้างเส้นแบ่งกลุ่มคำสั่ง ที่ Caption ให้พิมพ์ - (ขีด, hyphen) แต่ต้องตั้งชื่อใน Name แบบไม่ซ้ำเหมือนเมนูอื่น
9. เมื่อสร้างเมนูเสร็จแล้ว ให้เขียนคำสั่งใน sub procedure เช่น การเปิดฟอร์มที่ระบุ
Private Sub mnuNewCustomer_Click()
frmNewCustomer.Show
End Sub
การสร้างเมนูด้วย Template Manager
Template Manager เป็น Wizard การสร้างคำสั่งในเมนูของคำสั่งพื้นฐาน เช่น การเปิดไฟล์ การคัดลอก การวาง เป็นต้น ทำให้ผู้เขียนโปรแกรมสามารถสร้างเมนูคำสั่งพื้นฐานได้อย่างรวดเร็ว การใช้ Template Manager ต้องโหลดขึ้นมาด้วยคำสั่ง Add-in Manager
1. ที่เมนู Add-Ins เลือกคำสั่ง Add-In Manager (Add-ins -> Add-In Manager)
2. เมื่อปรากฏไดอะล๊อกบ๊อกซ์ Add-In Manager ให้เลือก VB Template Manager แล้วคลิกที่ Check box ของ Loaded/ Unloaded จะมีข้อความ Loaded ท้าย VB Template Manager แล้วคลิก OK
3. จะปรากฏเมนูคำสั่ง Add Menu เพิ่มในเมนู Tools ให้เลือกคำสั่งนี้
4. เมื่อไดอะล๊อกบ๊อกซ์ Add-In เปิดขึ้นมา ให้เลือกเมนูที่ต้องการ เช่น เลือก Edit Menu แล้วคลิก Open เมนูที่เลือกจะเป็นเมนูบนฟอร์ม
ให้ทำซ้ำขั้นตอนที่ 3 และ 4 จนกระทั่งได้เมนูตามที่ต้องการบนฟอร์ม
5. แล้วเข้าไปที่ Code Editor Window เพื่อเขียนคำสั่งภายใน sub procedure ที่สร้างขึ้นมา โดย Wizard จะสร้าง sub procedure เปล่า
Private Sub mnuEditCopy_Click()
MsgBox "Place Copy Code here!"
End Sub
การเข้าถึงเมนูในเวลาเรียกใช้
ในขณะที่เรียกใช้โปรแกรมสามารถที่ควบคุมเมนูคำสั่งได้ เช่น เมื่อมีการป้อนข้อความใน Text box จึงยอมให้ คำสั่ง Undo (mnuEditUndo), Cut (mnuEditCut) และ Copy (mnuEditCopy) ใช้งานได้ แต่คำสั่ง Paste (mnuEditPaste) ยังไม่ให้ใช้งาน
Private Sub txtName_Change()
mnuEditUndo.Enabled = True
mnuEditCut.Enabled = True
mnuEditCopy = True
mnuEditPaste = False
mnuEditDSelectAll = True
End Sub
Hot key และ Shortcut key
Hot key หรือ Access key เป็นตัวเลือกการกดปุ่มแป้นพิมพ์เพื่อเรียกใช้คำสั่ง โดยกดปุ่ม Alt + ตัวอักษร เช่น Alt + E เพื่อเปิดเมนู Edit และ กดปุ่มตัวอักษร เช่น C เพื่อใช้คำสั่ง Copy (คัดลอก)
Shortcut key เป็นตัวเลือกการกดปุ่ม Ctrl กับ ตัวอักษร เพื่อเรียกเมนูย่อยมาใช้งานโดยไม่ต้องเปิดเมนูหลัก เช่น การกดปุ่ม Ctrl + C เพื่อเรียกคำสั่ง คัดลอก
วิธีการกำหนด Hot key
1. ที่เมนู Tools เลือก Menu Editor (Tools เ Menu Editor) หรือคลิกปุ่ม บนแถบเครื่องมือ
2. เมื่อปรากฏไดอะล๊อกบ๊อกซ์ ให้กำหนด Caption เช่น &Edit ซึ่ง & ใช้กำหนด Hot key หรือ Access key โดยจะมีเส้นใต้ของตัวอักษรที่ติดกับสัญลักษณ์
วิธีการกำหนด Shortcut key
1. ที่เมนู Tools เลือก Menu Editor (Tools ->Menu Editor) หรือคลิกปุ่ม บนแถบเครื่องมือ
2. เมื่อปรากฏไดอะล๊อกบ๊อกซ์ ไปที่ Shortcut key แล้วเลือก Shortcut key จากรายการ เช่น Ctrl + C
ตัวอย่างการกำหนด Hot key และ Shortcut key
เมนู |
คุณสมบัติ Caption |
Hot Key |
Shortcut |
Undo |
&Undo |
u |
Ctrl + Z |
Cut |
Cu&t |
t |
Ctrl + X |
Copy |
&Copy
|
c |
Ctrl + C |
Paste |
&Paste |
p |
Ctrl + V |
Paste Special
|
Paste &Special
|
s |
(ไม่ได้กำหนด) |
Select All |
Select &All |
a |
Ctrl + A |
Invert Selection |
&Invert Selection |
i |
(ไม่ได้กำหนด) |
Pop-up Menu
Pop-up Menu เป็นเมนูที่สามารถปรากฏได้บนตำแหน่งใด ๆ ของ Window และเป็นอิสระจากแถบเมนู รายการที่แสดงสามารถกำหนดให้ขึ้นกับพื้นที่ และแสดงเมนูโดยการคลิกปุ่มเมาส์ด้านขวา ในการแสดงเมนู Pop-up ใช้เมธอด PopupMenu
[object.]PopupMenu menuname [,flag] [,x] [,y] [,boldcommand]
flag เป็นการจัดแนวเมนู เช่น 0-vbPopupMenuLeftAlign (ค่าเริ่มต้น)
x และ y เป็นการระบุพิกัดที่ให้แสดงเมนู Pop-up
ตัวอย่าง เช่น ให้แสดงบน Text box ชื่อ txtName
Private Sub txtName_MouseDown(Button A Integer, Shift As Integer, X As Single, Y As Single)
If Button And vbRightButton Then
PopupMenu mnuTextPopup, txtName.Left + txtName.Width
/2, _
txtName.Top + txtName.Height /2
End If
End Sub
|