คอนโทรล ListBox เป็นคอนโทรลที่ทำหน้าที่เป็นทางเลือกให้กับผู้ใช้ เช่นเดียวกับคอนโทรล OptionButton และ CheckBox ต่างกันตรงที่รูปแบบ การนำเสนอให้กับผู้ใช้ ในการใช้งานแบบปกติ ผู้ใช้จะสามารถเลือกได้ทีละรายการเท่านั้น แต่คุณสามารถกำหนดให้คอนโทรล ListBox ถูกเลือกได้มากกว่าหนึ่งรายการ โดยแก้ไขที่คุณสมบัติ MultiSelect ได้ ถ้าคุณต้องการใช้งานคอนโทรล ListBox ให้คลิ๊กเลือกที่ บนทูลบ๊อกซ์ ดังรูป
จะเห็นได้ว่า มีลักษณะเหมือนกับคอนโทรล TextBox แต่ถ้าคุณลองรันโปรเจ็กต์ จะพบว่า รูปแบบการนำเสนอ จะเป็นไปในลักษณะแสดงผลแบบ หลายบรรทัด ซึ่งถ้าจำนวนรายการ ที่คุณต้องการแสดง มีมากเกินกว่าที่คอนโทรล ListBox จะแสดงหมดได้ในคราวเดียว ตัวคอนโทรล ListBox จะมีการเพิ่มแถบ ScrollBar ให้โดยอัตโนมัติ
ในการตั้งชื่อ (คุณสมบัติ Name) เพื่อใช้สำหรับอ้างอิงในการเขียนโค้ด คุณควรใช้คำนำหน้าว่า lst เช่น lstStart, lstDisplay เป็นต้น สำหรับคุณสมบัติแรกๆ ที่คุณควรทำความเข้าใจ ก็คือ รายการต่างๆ ที่อยู่ในคอนโทรล ListBox ถูกเพิ่มเข้าไปได้อย่างไร และลักษณะต่างๆ ของคอนโทรล ListBox มีข้อแตกต่างในการใช้งานอย่างไร
การเพิ่มรายการต่างๆ เข้าไปในคอนโทรล ListBox คุณต้องกำหนดคุณสมบัติ List ซึ่งมีรูปแบบการใช้งานดังนี้
List1.List(index) [=string]
ตัวแปร index หมายถึง เลขจำนวนเต็ม Integer ที่ใช้กำหนดลำดับของรายการต่างๆ ที่อยู่ในคอนโทรล ListBox
ตัวแปร string หมายถึง ข้อความที่เป็นรายการ ซึ่งคุณต้องการเพิ่มเข้าไปในคอนโทรล ListBox
โดยปกติแล้ว รายการแรกที่ปรากฎอยู่ในคอนโทรล ListBox จะมีค่า index=0 และรายการต่อๆ ไปจะมีค่า 1,2,3... ไปเรื่อยๆ จนกระทั่งถึงรายการสุดท้าย จะมีค่าเท่ากับ ListCount-1 ขอให้คุณจำเงื่อนไขนี้ไว้ให้ดี เพราะถือได้ว่า เป็นหัวใจหลักในการใช้งานคอนโทรลนี้เลยก็ว่าได้ เนื่องจากคุณจะต้องนำรายการ ที่ผู้ใช้เลือก (ค่า index ประจำแต่ละรายการ) ไปสร้างเป็นเงื่อนไขในการประมวลผลต่อไป ซึ่งจะมีความสัมพันธ์กับคุณสมบัติ ListIndex ด้วย
การเพิ่มรายการต่างๆ เข้าไปในคอนโทรล ListBox ในขณะรัน คุณต้องใช้เมธอด AddItem แม้ว่าคุณจะสามารถเพิ่มรายการต่างๆ ในขณะออกแบบได้ โดยการใช้คุณสมบัติ List ก็ตาม แต่ในทางปฏิบัติแล้ว คุณไม่ควรเพิ่มรายการในขณะออกแบบ ด้วยคุณสมบัติ List เพราะจะทำให้เกิดข้อจำกัด ในการใช้งานได้ คุณควรที่จะเพิ่มรายการต่างๆ ในขณะรัน ด้วยเมธอด AddItem เท่านั้น (ซึ่งก็คือ ขณะเขียนโค้ดนั่นเอง) และคุณจะต้องเพิ่มรายการต่างๆ ให้เสร็จสมบูรณ์ ในเหตุการณ์ Form_Load ( ) เท่านั้น เช่น
Private Sub Form_Load()
With List1
.AddItem "One"
.AddItem "Two"
.AddItem "Three"
.AddItem "Four"
End With
End Sub
smooth
วันอาทิตย์ที่ 5 กุมภาพันธ์ พ.ศ. 2555
Text Box
สำหรับเหตุการณ์ที่คอนโทรล TextBox สนับสนุนมีดังนี้
Private Sub Text1_Change([index As Integer])
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
Private Sub Text1_Click([index As Integer])
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
Private Sub Text1_DblClick (index As Integer)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
Private Sub Text1_DragDrop([index As Integer,]source As Control, x As Single, y As Single)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์ กิวเมนต์ source หมายถึง คอนโทรลที่เป็นจุดเริ่มต้นเหตุการณ์ลากแล้ววาง (drag-drop)
อาร์กิวเมนต์ x,y หมายถึง พิกัดคู่ลำดับ co-ordinate ซึ่งเป็นตำแหน่งของเมาส์พอยน์เตอร์ บนตัวคอนโทรลปลายทาง ที่ผู้ใช้ต้องการวาง ซึ่งถือว่า กระบวนการลากแล้ววาง (drag-drop) เสร็จสิ้น และสมบูรณ์แล้ว
Private Sub Text1_DragOver([index As Integer,]source As Control, x As Single, y As Single, state As Integer)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์ กิวเมนต์ source หมายถึง คอนโทรลที่เป็นจุดเริ่มต้นเหตุการณ์ลากแล้ววาง (drag-drop)
อาร์กิวเมนต์ x,y หมายถึง พิกัดคู่ลำดับ co-ordinate ซึ่งเป็นตำแหน่งของเมาส์พอยน์เตอร์ บนตัวคอนโทรลปลายทาง ที่ผู้ใช้ต้องการวาง ซึ่งถือว่า กระบวนการลากแล้ววาง (drag-drop) เสร็จสิ้น และสมบูรณ์แล้ว
อาร์กิวเมนต์ state หมายถึง เลขจำนวนเต็ม Integer ที่บอกสถานะของกระบวนการ ลากแล้ววาง ซึ่งมีความหมายดังนี้
Private Sub Text1_GotFocus([index As Integer])
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
Private Sub Text1_KeyDown([index As Integer,]keycode As Integer, shift As Integer)
End Sub
Private Sub Text1_KeyUp([index As Integer,]keycode As Integer, shift As Integer)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์กิวเมนต์ keycode หมายถึง รหัสซึ่งเป็นตัวแทนของคีย์ ที่อยู่บนคีย์บอร์ด เช่น ปุ่ม F1-F12, ปุ่ม Home เป็นต้น คุณสามารถดูรายละเอียดเกี่ยวกับ keycode เหล่านี้ได้ที่ บทที่ 28 ค่าคงที่ระบบ (System Constants) ที่น่าสนใจ
อาร์กิวเมนต์ shift หมายถึง สถานะของปุ่ม shift, Ctrl และ Alt โดยที่ปุ่มทั้ง 3 ปุ่ม ถูกจัดเก็บในรูปแบบบิต ซึ่งผู้ใช้สามารถกดพร้อมๆ กันได้ มักจะใช้ค่าบิตมาตรวจสอบสถานะของปุ่มทั้ง 3 เสมอ มีความหมายดังนี้
ถ้าผู้ใช้มีการกดปุ่มดังกล่าว พร้อมๆ กัน ไม่ว่าจะเป็นปุ่มใดก็ตาม จะใช้ผลบวกของแต่ละบิตรวมกัน เช่น สมมติว่าผู้ใช้กดปุ่ม Shift+Alt จะมีค่าเท่ากับ 5 เป็นต้น
Private Sub Text1_KeyPress([index As Integer,]keyascii As Integer)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์กิวเมนต์ keyascii หมายถึง รหัสแอสกีซึ่งแทนของอักษรที่อยู่บนคีย์บอร์ด คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่ บทที่ 28 ค่าคงที่ระบบ (System Constants) ที่น่าสนใจ
Private Sub Text1_LostFocus([index As Integer])
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
Private Sub Text1_MouseDown([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)
End Sub
Private Sub Text1 _MouseUp([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์กิวเมนต์ button หมายถึง ปุ่มของเมาส์ ซึ่งเป็นตัวทำให้เกิดเหตุการณ์ MouseDown และ MouseUp แต่ละปุ่มของเมาส์จะถูกจัดเก็บในลักษณะบิต (bit) โดยที่แต่ละบิตมีความหมายดังนี้
อาร์กิวเมนต์ shift หมายถึง สถานะของปุ่ม shift, Ctrl และ Alt โดยที่ปุ่มทั้ง 3 ปุ่ม ถูกจัดเก็บในรูปแบบบิตเช่นกัน ซึ่งผู้ใช้สามารถกดพร้อมๆ กันได้ มักจะใช้ค่าบิตมาตรวจสอบสถานะของปุ่มทั้ง 3 เสมอ มีความหมายดังนี้
ถ้าผู้ใช้มีการกดปุ่มดังกล่าว พร้อมๆ กัน ไม่ว่าจะเป็นปุ่มใดก็ตาม จะใช้ผลบวกของแต่ละบิตรวมกัน เช่น สมมติว่าผู้ใช้กดปุ่ม Shift+Alt จะมีค่าเท่ากับ 5 เป็นต้น
อาร์กิวเมนต์ x,y หมายถึง พิกัดคู่ลำดับ (co-ordinate) ของเมาส์พอยน์เตอร์ ซึ่งเป็นตำแหน่งที่เกิดเหตุการณ์ MouseDown หรือ MouseUp
Private Sub Text1_MouseMove([index As Integer,] button As Integer, shift As Integer, x As Single, y As Single)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์กิวเมนต์ button หมายถึง ปุ่มของเมาส์ ซึ่งเป็นตัวทำให้เกิดเหตุการณ์ MouseDown และ MouseUp แต่ละปุ่มของเมาส์จะถูกจัดเก็บในลักษณะบิต (bit) โดยที่แต่ละบิตมีความหมายดังนี้
อาร์กิวเมนต์ shift หมายถึง สถานะของปุ่ม shift, Ctrl และ Alt โดยที่ปุ่มทั้ง 3 ปุ่ม ถูกจัดเก็บในรูปแบบบิตเช่นกัน ซึ่งผู้ใช้สามารถกดพร้อมๆ กันได้ มักจะใช้ค่าบิตมาตรวจสอบสถานะของปุ่มทั้ง 3 เสมอ มีความหมายดังนี้
ถ้าผู้ใช้มีการกดปุ่มดังกล่าว พร้อมๆ กัน ไม่ว่าจะเป็นปุ่มใดก็ตาม จะใช้ผลบวกของแต่ละบิตรวมกัน เช่น สมมติว่าผู้ใช้กดปุ่ม Shift+Alt จะมีค่าเท่ากับ 5 เป็นต้น
อาร์กิวเมนต์ x,y หมายถึง พิกัดคู่ลำดับ (co-ordinate) ของเมาส์พอยน์เตอร์ ซึ่งเป็นตำแหน่งที่เกิดเหตุการณ์ MouseDown หรือ MouseUp
Text1_Change ( )
เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการแก้ไขข้อความที่อยู่บนตัวคอนโทรล TextBox ในขณะรัน มีรูปแบบการใช้งานดังนี้Private Sub Text1_Change([index As Integer])
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
Text1_Click ( )
เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้คลิ๊กเมาส์ด้วยปุ่มซ้าย ที่บริเวณตัวคอนโทรล TextBox มีรูปแบบการใช้งานดังนี้Private Sub Text1_Click([index As Integer])
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
Text1_DblClick ( )
เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้ดับเบิลคลิ๊กภายในบริเวณตัวคอนโทรล TextBox มีรูปแบบการใช้งานดังนี้Private Sub Text1_DblClick (index As Integer)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
Text1_DragDrop ( )
เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการลาก (drag) แล้ววาง (drop) โดยที่เหตุการณ์ดังกล่าวจะต้องเสร็จสิ้น และสมบูรณ์ มีรูปแบบการใช้งานดังนี้Private Sub Text1_DragDrop([index As Integer,]source As Control, x As Single, y As Single)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์ กิวเมนต์ source หมายถึง คอนโทรลที่เป็นจุดเริ่มต้นเหตุการณ์ลากแล้ววาง (drag-drop)
อาร์กิวเมนต์ x,y หมายถึง พิกัดคู่ลำดับ co-ordinate ซึ่งเป็นตำแหน่งของเมาส์พอยน์เตอร์ บนตัวคอนโทรลปลายทาง ที่ผู้ใช้ต้องการวาง ซึ่งถือว่า กระบวนการลากแล้ววาง (drag-drop) เสร็จสิ้น และสมบูรณ์แล้ว
Text1_DragOver ( )
เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการลากแล้ววาง (drag-drop) จากคอนโทรลอื่นๆ ซึ่งลากผ่านมาเหนือบริเวณที่ไม่ใช่คอนโทรลปลายทาง คุณสามารถใช้เหตุการณ์นี้ เพื่อดักจับเมาส์พอยน์เตอร์ว่า อยู่ตำแหน่งใด มีรูปแบบการใช้งานดังนี้Private Sub Text1_DragOver([index As Integer,]source As Control, x As Single, y As Single, state As Integer)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์ กิวเมนต์ source หมายถึง คอนโทรลที่เป็นจุดเริ่มต้นเหตุการณ์ลากแล้ววาง (drag-drop)
อาร์กิวเมนต์ x,y หมายถึง พิกัดคู่ลำดับ co-ordinate ซึ่งเป็นตำแหน่งของเมาส์พอยน์เตอร์ บนตัวคอนโทรลปลายทาง ที่ผู้ใช้ต้องการวาง ซึ่งถือว่า กระบวนการลากแล้ววาง (drag-drop) เสร็จสิ้น และสมบูรณ์แล้ว
อาร์กิวเมนต์ state หมายถึง เลขจำนวนเต็ม Integer ที่บอกสถานะของกระบวนการ ลากแล้ววาง ซึ่งมีความหมายดังนี้
- 0-Enter หมายถึง คอนโทรลต้นทาง (source control) กำลังถูกลากเข้ามาอยู่เหนือบริเวณเป้าหมาย
- 1-Leave หมายถึง คอนโทรลต้นทาง (source control) กำลังถูกลากออกจากเป้าหมาย
- 2-Over หมายถึง คอนโทรลต้นทาง (source control) กำลังถูกลากไปมา เหนือบริเวณเป้าหมาย
Text1_GotFocus
เป็นเหตุการณ์ที่เกิดขึ้น เมื่อคอนโทรล TextBox ได้รับโฟกัส เหตุการณ์นี้จะเกิดขึ้นได้ โดยมีข้อแม้ว่า คุณสมบัติ Enabled และคุณสมบัติ Visible ของคอนโทรล TextBox= True เท่านั้น มีรูปแบบการใช้งานดังนี้Private Sub Text1_GotFocus([index As Integer])
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
Text1_KeyDown ( ) และ Text1_KeyUp ( )
เหตุการณ์ KeyDown ( ) จะเกิดขึ้นเมื่อ ผู้ใช้กดปุ่มใดๆ ที่คีย์บอร์ด และเหตุการณ์ KeyUp ( ) จะเกิดขึ้นต่อจากเหตุการณ์ KeyDown ( ) นั่นคือ เมื่อผู้ใช้ปล่อยปุ่มที่คีย์บอร์ด คุณจะต้องกำหนดให้คอนโทรล TextBox ให้ได้รับโฟกัสเสียก่อน มีรูปแบบการใช้งานดังนี้Private Sub Text1_KeyDown([index As Integer,]keycode As Integer, shift As Integer)
End Sub
Private Sub Text1_KeyUp([index As Integer,]keycode As Integer, shift As Integer)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์กิวเมนต์ keycode หมายถึง รหัสซึ่งเป็นตัวแทนของคีย์ ที่อยู่บนคีย์บอร์ด เช่น ปุ่ม F1-F12, ปุ่ม Home เป็นต้น คุณสามารถดูรายละเอียดเกี่ยวกับ keycode เหล่านี้ได้ที่ บทที่ 28 ค่าคงที่ระบบ (System Constants) ที่น่าสนใจ
อาร์กิวเมนต์ shift หมายถึง สถานะของปุ่ม shift, Ctrl และ Alt โดยที่ปุ่มทั้ง 3 ปุ่ม ถูกจัดเก็บในรูปแบบบิต ซึ่งผู้ใช้สามารถกดพร้อมๆ กันได้ มักจะใช้ค่าบิตมาตรวจสอบสถานะของปุ่มทั้ง 3 เสมอ มีความหมายดังนี้
ค่าคงที่ (Shift) | ค่าตัวเลข | รายละเอียด |
vbShiftMask | 1 | ปุ่ม SHIFT ถูกกด |
vbCtrlMask | 2 | ปุ่ม CTRL ถูกกด |
vbAltMask | 4 | ปุ่ม ALT ถูกกด |
ถ้าผู้ใช้มีการกดปุ่มดังกล่าว พร้อมๆ กัน ไม่ว่าจะเป็นปุ่มใดก็ตาม จะใช้ผลบวกของแต่ละบิตรวมกัน เช่น สมมติว่าผู้ใช้กดปุ่ม Shift+Alt จะมีค่าเท่ากับ 5 เป็นต้น
Text1_KeyPress ( )
เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการกด และปล่อยปุ่มที่คีย์บอร์ด คุณต้องกำหนดให้คอนโทรล TextBox ได้รับโฟกัสก่อน มีรูปแบบการใช้งานดังนี้Private Sub Text1_KeyPress([index As Integer,]keyascii As Integer)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์กิวเมนต์ keyascii หมายถึง รหัสแอสกีซึ่งแทนของอักษรที่อยู่บนคีย์บอร์ด คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่ บทที่ 28 ค่าคงที่ระบบ (System Constants) ที่น่าสนใจ
Text1_LostFocus ( )
เป็นเหตุการณ์ที่เกิดขึ้น เมื่อคอนโทรล CommandButton สูญเสียสภาวะโฟกัส ให้กับคอนโทรล หรืออ๊อบเจ็กต์ตัวอื่นๆ อาจกล่าวได้ว่า เหตุการณ์ LostFocus ( ) จะเกิดต่อจากเหตุการณ์ GotFocus ( ) นั่นเอง มีรูปแบบการใช้งานดังนี้Private Sub Text1_LostFocus([index As Integer])
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
Text1_MouseDown ( ) และ Text1_MouseUp ( )
เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้กดปุ่มซ้ายของเมาส์ บริเวณตัวคอนโทรล ก็จะทำให้เกิดเหตุการณ์ MouseDown และเมื่อผู้ใช้ปล่อยเมาส์ บริเวณตัวคอนโทรล ก็จะทำให้เกิดเหตุการณ์ MouseUp มีรูปแบบการใช้งานดังนี้Private Sub Text1_MouseDown([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)
End Sub
Private Sub Text1 _MouseUp([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์กิวเมนต์ button หมายถึง ปุ่มของเมาส์ ซึ่งเป็นตัวทำให้เกิดเหตุการณ์ MouseDown และ MouseUp แต่ละปุ่มของเมาส์จะถูกจัดเก็บในลักษณะบิต (bit) โดยที่แต่ละบิตมีความหมายดังนี้
ค่าคงที่ (Button) | ค่าตัวเลข | รายละเอียด |
vbLeftButton | 1 | เมื่อปุ่มซ้ายของเมาส์ถูกกด |
vbRightButton | 2 | เมื่อปุ่มขวาของเมาส์ถูกกด |
vbMiddleButton | 4 | เมื่อปุ่มกลางของเมาส์ถูกกด |
อาร์กิวเมนต์ shift หมายถึง สถานะของปุ่ม shift, Ctrl และ Alt โดยที่ปุ่มทั้ง 3 ปุ่ม ถูกจัดเก็บในรูปแบบบิตเช่นกัน ซึ่งผู้ใช้สามารถกดพร้อมๆ กันได้ มักจะใช้ค่าบิตมาตรวจสอบสถานะของปุ่มทั้ง 3 เสมอ มีความหมายดังนี้
ค่าคงที่ (Shift) | ค่าตัวเลข | รายละเอียด |
vbShiftMask | 1 | ปุ่ม SHIFT ถูกกด |
vbCtrlMask | 2 | ปุ่ม CTRL ถูกกด |
vbAltMask | 4 | ปุ่ม ALT ถูกกด |
ถ้าผู้ใช้มีการกดปุ่มดังกล่าว พร้อมๆ กัน ไม่ว่าจะเป็นปุ่มใดก็ตาม จะใช้ผลบวกของแต่ละบิตรวมกัน เช่น สมมติว่าผู้ใช้กดปุ่ม Shift+Alt จะมีค่าเท่ากับ 5 เป็นต้น
อาร์กิวเมนต์ x,y หมายถึง พิกัดคู่ลำดับ (co-ordinate) ของเมาส์พอยน์เตอร์ ซึ่งเป็นตำแหน่งที่เกิดเหตุการณ์ MouseDown หรือ MouseUp
Text1_MouseMove ( )
เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้เลื่อนเมาส์ไปมาบริเวณคอนโทรล Label มีรูปแบบการใช้งานดังนี้Private Sub Text1_MouseMove([index As Integer,] button As Integer, shift As Integer, x As Single, y As Single)
End Sub
อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว
อาร์กิวเมนต์ button หมายถึง ปุ่มของเมาส์ ซึ่งเป็นตัวทำให้เกิดเหตุการณ์ MouseDown และ MouseUp แต่ละปุ่มของเมาส์จะถูกจัดเก็บในลักษณะบิต (bit) โดยที่แต่ละบิตมีความหมายดังนี้
ค่าคงที่ (Button) | ค่าตัวเลข | รายละเอียด |
vbLeftButton | 1 | เมื่อปุ่มซ้ายของเมาส์ถูกกด |
vbRightButton | 2 | เมื่อปุ่มขวาของเมาส์ถูกกด |
vbMiddleButton | 4 | เมื่อปุ่มกลางของเมาส์ถูกกด |
อาร์กิวเมนต์ shift หมายถึง สถานะของปุ่ม shift, Ctrl และ Alt โดยที่ปุ่มทั้ง 3 ปุ่ม ถูกจัดเก็บในรูปแบบบิตเช่นกัน ซึ่งผู้ใช้สามารถกดพร้อมๆ กันได้ มักจะใช้ค่าบิตมาตรวจสอบสถานะของปุ่มทั้ง 3 เสมอ มีความหมายดังนี้
ค่าคงที่ (Shift) | ค่าตัวเลข | รายละเอียด |
vbShiftMask | 1 | ปุ่ม SHIFT ถูกกด |
vbCtrlMask | 2 | ปุ่ม CTRL ถูกกด |
vbAltMask | 4 | ปุ่ม ALT ถูกกด |
ถ้าผู้ใช้มีการกดปุ่มดังกล่าว พร้อมๆ กัน ไม่ว่าจะเป็นปุ่มใดก็ตาม จะใช้ผลบวกของแต่ละบิตรวมกัน เช่น สมมติว่าผู้ใช้กดปุ่ม Shift+Alt จะมีค่าเท่ากับ 5 เป็นต้น
อาร์กิวเมนต์ x,y หมายถึง พิกัดคู่ลำดับ (co-ordinate) ของเมาส์พอยน์เตอร์ ซึ่งเป็นตำแหน่งที่เกิดเหตุการณ์ MouseDown หรือ MouseUp
คุณสมบัติของคอนโทรล Label
สำหรับคุณสมบัติอื่นๆ ที่น่าสนใจของคอนโทรล Label มีดังนี้
Alignment
คุณสมบัตินี้มีหน้าที่คืนค่า หรือกำหนดรูปแบบการจัดวางของข้อความ คุณสามารถแก้ไขคุณสมบัตินี้ได้ทั้งในขณะออกแบบ และขณะรัน มีรูปแบบการใช้งานดังนี้Label1.Alignment [=number]
ตัวแปร number คุณสามารถกำหนดค่าได้ดังนี้
BackColor และ ForeColor
คุณสมบัติ BackColor มีหน้าที่สำหรับกำหนดสีพื้นหลัง ส่วนคุณสมบัติ ForeColor มีหน้าที่กำหนดสีตัวอักษรที่ปรากฎอยู่บนตัวคอนโทรล มีรูปแบบการใช้งานดังนี้
Command1.BackColor [= color]
Command1.ForeColor [= color]
เมื่อคุณต้องการกำหนดสี VB จะแสดงแท็บสี ที่คุณสามารถกำหนดได้ 2 ลักษณะคือ
แท็บ Palette หมายถึง ต้องการใช้สีจากการผสมของแม่สี RGB ตามปกติ
Command1.BackColor [= color]
Command1.ForeColor [= color]
เมื่อคุณต้องการกำหนดสี VB จะแสดงแท็บสี ที่คุณสามารถกำหนดได้ 2 ลักษณะคือ
- แท็บ System หมายถึง ต้องการใช้สี โดยเลือกจากตัวอย่างของสีที่ควรจะเป็น ในสภาวะต่างๆ ซึ่งขึ้นอยู่กับการกำหนดสีใน Control Panel ด้วย เช่น ขณะถูก Hilight, Disable ฯลฯ เป็นต้น เป็นการอำนวยความสะดวกให้คุณ ในกรณีที่ คุณต้องการใช้สีที่เป็นมาตรฐาน และเหมาะสมกับสภาวะนั้นๆ
การใช้งานคอนโทรล CommandButton
คอนโทรล CommandButton ใช้สำหรับสร้างปุ่มกด หรือปุ่มตอบรับ ซึ่งคุณสามารถพบได้ในแอพพลิเคชันทั่วๆ ไป ซึ่งถือได้ว่า เป็นคอนโทรลที่มีการใช้งาน มากที่สุดอีกตัวหนึ่ง
รูปที่ 6-1 คอนโทรล CommandButton บนทูลบ๊อกซ์โดยปกติแล้ว เมื่อคุณใช้งานคอนโทรล CommandButton ขนาดของตัวคอนโทรลที่ VB ตั้งมา จะเป็นขนาดที่เหมาะสมในการใช้งานอยู่แล้ว เมื่อคุณดับเบิลคลิ๊กที่ทูลบ๊อกซ์
สำหรับการกำหนดข้อความที่จะแสดงบนปุ่ม ซึ่งถือได้ว่า เป็นคุณสมบัติที่เป็นหน้าที่หลักของคอนโทรล CommandButton เลยก็ว่าได้ คุณควรที่จะใช้ข้อความที่สื่อหน้าที่ของปุ่มนั้นๆ ด้วย มีรูปแบบการใช้งานดังนี้
Command1.Caption [= string]ตัวแปร string หมายถึงข้อความที่คุณต้องการแสดงบนปุ่ม ควรจะเป็นคำเดียวสั้นๆ ที่มีความหมายตรงกับหน้าที่ของมัน เช่น
ถ้าคุณต้องการทำให้ปุ่มมี access key ซึ่งหมายถึงผู้ใช้สามารถกดปุ่ม ALT+ตัวอักษร เพื่อใช้งานปุ่มดังกล่าว ให้คุณใช้เครื่องหมาย & (ampersand) หน้าตัวอักษรที่คุณต้องการทำ access key ดังรูป เป็นการใส่เครื่องหมาย & หน้าตัว O ที่คุณสมบัติ caption
ถ้าคุณต้องการแสดงเครื่องหมาย & ให้ผู้ใช้เห็นบนตัวคอนโทรล คุณเพียงแต่ใส่เครื่องหมาย && ซ้ำกัน 2 ตัว ก็จะเป็นการแสดงเครื่องหมาย & ได้ และในการตั้งชื่อ (คุณสมบัติ Name) เพื่อใช้อ้างอิงในการเขียนโค้ด คุณควรใช้คำนำหน้าว่า cmd เช่น cmdOk เป็นต้น
คุณสมบัติของคอนโทรล CommandButton
สำหรับคุณสมบัติของคอนโทรล CommandButton อื่นๆ ที่น่าสนใจ มีดังนี้Appearance
คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดรูปแบบการปรากฎของคอนโทรล CommandButton บนฟอร์ม คุณสมบัตินี้ในขณะรัน คุณสามารถอ่านค่าได้อย่างเดียว มีรูปแบบการใช้งานดังนี้Command1.Appearance=[value]
ตัวแปร value หมายถึง เลขจำนวนเต็ม Integer ซึ่งมีความหมายดังนี้
วันจันทร์ที่ 22 สิงหาคม พ.ศ. 2554
ความรู้เกี่ยวกับ Array
ช่วงนี้ที่ทำงานได้ทำเกี่ยวกับ Array อยู่บ่อยๆ (แต่ขอบอกตามตรง ว่าไม่ค่อยชอบเท่าไหร่ …^_^) แต่โดยเนื้องาน บางทีก็เลี่ยงไม่ได้ด้วยซิ พอได้ทำงานกับ Array ก็เลยได้ความรู้เกี่ยวกับการจัดเก็บข้อมูลแบบ Array มาเก็บไว้จ้า
Array คือ ชุดของตัวแปรที่แสดงอยู่ในรูปของลำดับที่ เพื่อใช้สำหรับเก็บค่าข้อมูลที่อยู่ในกลุ่มเดียวกัน
Array 1 มิติ เป็นการจัดเก็บข้อมูลในลักษณะที่เรียงต่อกันไปเรื่อยๆ ดังรูป
[0] [1] [2]
Mango | Pineapple | Coconut |
ที่นี้เรามารู้วิธีการนำเอา Array พวกนี้ไปใช้งานดีกว่า….ซึ่งถ้าเป็นการใช้งาน Array โดยทั่วๆ ไป คิดว่าหลายๆ คนคงเคยเห็นมาบ้างแล้ว เอาแบบแตกต่างมั่ง ฮ่าๆ เป็นการใช้งานการจัดเก็บ Array โดยใช้ข้อมูลจากฐานข้อมูล
ซึ่งวิธีการนี้เหมาะสำหรับ ในบางกรณีที่เราไม่ต้องการติดต่อกับฐานข้อมูลทุกครั้ง (ไม่ต้องการ Query ตลอดเวลา) เราก็เลย ทำการ Query ข้อมูลเพียงครั้งเดียว แล้วเก็บค่าของข้อมูลไว้ใน Array แล้วเวลาที่ต้องการใช้งานก็แค่ทำการวนลูป เอาค่าข้อมูลออกมาใช้ วิธีการนี้จะทำให้ไม่เกิด Process มากๆ ในกรณีที่เราต้องการเน้นเครื่องความเร็วสำหรับ Process นั้นๆ จ้า
การจัดเก็บข้อมูลลง Array $sqlSelectESP = "select * from esp_smtp_tbl where smtp = '$smtp'"; $querySelectESP = mysql_query($sqlSelectESP) or die ("Can't query sqlCheckESP :".mysql_error()); $i = 0;
While($LineESP = mysql_fetch_assoc($querySelectESP)){ $array_esp[$i] = array("$LineESP['esp'],$LineESP['smtp'],$LineESP['amount']"); $i ++; }
การนำข้อมูลของ Array ออกมาใช้
foreach($array_esp as $value){ echo $esp_value = $value[0]; echo $smtp_value = $value[1]; echo $amount_value = $value[2]; }
echo “<pre>”; echo $array_esp; echo “</pre>”;
var_dump($array_esp);
โดยหลักการทำงานตามแบบ Array 1 มิติ ข้างต้นเราสามารถนำมาประยุกต์ใช้กับ Array หลายๆ มิติ ได้เหมือนกันค่ะ ไม่ยากเลยใช่มั้ย ^_^
วันพฤหัสบดีที่ 4 สิงหาคม พ.ศ. 2554
do while
คำสั่ง do while มีรูปแบบดังนี้
จากรูปแบบของคำสั่ง do while จะเห็นได้ว่าไม่มีการเช็คเงื่อนไขก่อนว่าเป็นจริงหรือเท็จ จะทำคำสั่งต่างๆ ที่ do ก่อน 1 ครั้ง พอจบการทำที่ do แล้วจึงมาเช็คเงื่อนไขที่ while ที่อยู่ด้านล่าง ถ้าเงื่อนไขเป็นจริงก็จะกลับไปทำงานซ้ำอีกครั้งใน do ถ้าเงื่อนไขเป็นเท็จก็จะออกจากลูปไป เห็นไหมครับว่าจริงๆ แล้วคล้ายกับคำสั่ง while ในบท ความที่แล้วไงครับ เพียงแต่ do while นั้นจะทำงานตามคำสั่งที่เราเขียนไว้ก่อนอย่างน้อย 1 ครั้งนั่นเอง ลองมาดูตัวอย่างการใช้งานกันเลยครับ
อธิบายโปรแกรม จากโค้ดตัวอย่างนี้จะทำให้เห็นว่าเหตุการณ์ในลักษณะแบบนี้จะต้องใช้ do while เข้ามาช่วยเนื่องจากจะมีการรับค่าตัวเลขจากผู้ใช้งานก่อนแล้วจึงไป ตรวจสอบค่าต่อไปซึ่งถ้าค่าที่ผู้ใช้กรอกมาเป็น 0 จทำให้สิ้นสุดการทำงานของลูปทันที ลองนึกภาพถ้าเขียนโดยใช้คำสั่ง while อย่างเดียวนั้นจะทำให้ไม่สามารถรับค่าตัวเลข มาก่อนได้เพราะคำสั่ง while จะมีการเช็คค่าก่อนเข้าลูปนั่นเอง
ผมคิดว่าคำสั่งในบทความนี้ก็ยังถือว่ายังไม่ยากเกินไปนะครับสำหรับผู้เริ่มต้น พยายามลองฝึกฝนเขียนดูนะครับ บทความหน้าก็จะเป็นคำสั่งในการวนลูปที่เป็นคำสั่งสุดท้าย แล้วนะครับ จะเป็นคำสั่งอะไรนั้นให้ติดตามไปดูได้ครับ...
สมัครสมาชิก:
บทความ (Atom)