Chapter 8 CheckBox,OptionButton และ Frame

Chapter 8 Using the CheckBox,OptionButton and Frame Controls

การใช้งานคอนโทรล CheckBox,OptionButton และ Frame

  • การใช้งานคอนโทรล CheckBox
    • คุณสมบัติของคอนโทรล CheckBox
    • เมธอดของคอนโทรล CheckBox
    • เหตุการณ์ของคอนโทรล CheckBox
  • การใช้งานคอนโทรล OptionButton
    • คุณสมบัติของคอนโทรล OptionButton
    • เมธอดของคอนโทรล OptionButton
    • เหตุการณ์ของคอนโทรล OptionButton
  • การใช้งานคอนโทรล Frame
    • คุณสมบัติของคอนโทรล Frame
    • เมธอดของคอนโทรล Frame
    • เหตุการณ์ของคอนโทรล Frame

การใช้งานคอนโทรล CheckBox

คอนโทรล Checkbox จะใช้สำหรับเป็นตัวเลือกหัวข้อ ให้ผู้ใช้เลือก ซึ่งผู้ใช้สามารถเลือกหัวข้อดังกล่าวได้ หลายๆ หัวข้อพร้อมๆ กัน โดยที่ไม่จำเป็นต้องใช้คอนโทรล Frame เพื่อจัดกลุ่ม ให้คุณเลือกคลิ๊ก clip_image001 เพื่อเลือกคอนโทรล CheckBox ที่ทูลบ๊อกซ์ ซึ่งคอนโทรล CheckBox จะปรากฎบนฟอร์ม ดังรูป

clip_image002

รูปที่ 8-1 แสดงคอนโทรล CheckBox เมื่อปรากฎบนฟอร์ม

ข้อความที่กำกับอยู่ที่ตัวคอนโทรล และสถานะที่คอนโทรล CheckBox ถูกเลือก หรือไม่ถูกเลือก ถือได้ว่าเป็นหัวใจหลัก ในการใช้งานคอนโทรลนี้เลยก็ว่าได้ เพราะจะใช้ค่าดังกล่าวไปเป็นเงื่อนไขในการตรวจสอบต่อไป

ในการตั้งชื่อ (คุณสมบัติ Name) ให้กับคอนโทรล CheckBox คุณควรใช้คำนำหน้าว่า chk เช่น chkMale, chkFemale เป็นต้น เพื่ออ้างอิงในการเขียนโค้ด สำหรับคุณสมบัติตัวแรกที่คุณควรทราบคือ คุณสมบัติ Caption ซึ่งใช้สำหรับการแสดงข้อความ กำกับที่ตัวคอนโทรล CheckBox ข้อความที่คุณใส่เข้าไป   ขอให้คุณใช้ข้อความ ที่กระชับ และสื่อให้ผู้ใช้ทราบถึงหน้าที่ หรือประโยชน์ที่ผู้ใช้จะได้รับ เมื่อคลิ๊กเลือกที่ตัวคอนโทรล CheckBox ซึ่งมีรูปแบบการใช้งานดังนี้

Check1.Caption [= string]

ตัวแปร string หมายถึง ข้อความที่จะกำกับอยู่ที่ตัวคอนโทรล CheckBox ซึ่งในขณะออกแบบ คุณสามารถใส่ข้อความภาษาไทยได้อีกด้วย

สำหรับการตรวจสอบค่าที่คอนโทรล CheckBox ถูกเลือก หรือไม่ถูกเลือก เป็นอีกส่วนหนึ่งที่มีความสำคัญเป็นอย่างยิ่ง เพราะมักจะใช้เป็นเงื่อนไข ในการตรวจสอบเสมอ จากรูปเป็นการแสดงสถานะของคอนโทรล CheckBox ที่ถูกเลือก และไม่ถูกเลือกบนฟอร์ม

clip_image003

รูปที่ 8-2 แสดงคอนโทรล CheckBox แบบถูกเลือกและไม่ถูกเลือก

คุณสามารถตรวจสอบค่าดังกล่าวได้จากคุณสมบัติ Value ซึ่งมีรูปแบบการใช้งานดังนี้

Check1.Value [=value]

ตัวแปร value คุณสามารถกำหนดค่าได้ดังนี้

กำหนดค่า

รายละเอียด

0

หมายถึง คอนโทรล CheckBox อยู่ในสถานะไม่ถูกเลือก clip_image004

1

หมายถึง คอนโทรล CheckBox อยู่ในสถานะถูกเลือก

2

หมายถึง คอนโทรล CheckBox อยู่ในสถานะผู้ใช้ไม่สามารถเลือกได้ clip_image005


คุณสมบัติของคอนโทรล CheckBox

สำหรับคุณสมบัติอื่นๆ ที่น่าสนใจของคอนโทรล CheckBox   มีดังนี้

Alignment

คุณสมบัตินี้มีหน้าที่คืนค่า หรือกำหนดรูปแบบการจัดวางของข้อความที่กำกับอยู่ที่ตัวคอนโทรล CheckBox คุณสามารถแก้ไขคุณสมบัตินี้ ได้เฉพาะตอนออกแบบเท่านั้น ส่วนในขณะรัน คุณอ่านค่าได้เพียงอย่างเดียว

Check1.Alignment [=number]

ตัวแปร number คุณสามารถกำหนดค่าได้ดังนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

VbLeftJustify

0

(Default) หมายถึง ข้อความที่กำกับอยู่ จะอยู่ทางด้านขวาของตัวคอนโทรล

VbRightJustify

1

หมายถึง ข้อความที่กำกับอยู่ จะอยู่ทางด้านซ้ายของตัวคอนโทรล

clip_image006

รูปที่ 8-3 แสดงข้อความบนคอนโทรล CheckBox ที่กำหนดคุณสมบัติ Alignment แบบ 0 และ1


Appearance

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดรูปแบบการปรากฎของคอนโทรล CheckBox บนฟอร์ม ในขณะรัน คุณสมบัตินี้ คุณสามารถอ่านค่า ได้เพียงอย่างเดียวเท่านั้น มีรูปแบบการใช้งานดังนี้

Check1.Appearance=[value]

ตัวแปร value หมายถึง เลขจำนวนเต็ม Integer ซึ่งมีความหมายดังนี้

กำหนดค่า

รายละเอียด

0

Flat หมายถึง ลักษณะของคอนโทรลเป็นแบบ 2 มิติ ( 2D)

1

(Default) แสดงคอนโทรลในลักษณะ 3 มิติ (3D)

clip_image007

รูปที่ 8-4 แสดงคอนโทรล CheckBox แบบ Flat และ 3D ที่ปรากฎอยู่บนฟอร์ม


BackColor และ ForeColor

คุณสมบัติ BackColor มีหน้าที่สำหรับ กำหนดสีพื้นหลัง (Background) ของตัวคอนโทรล และ คุณสมบัติ ForeColor มีหน้าที่สำหรับ กำหนดสีของข้อความ ที่ปรากฎอยู่ในคอนโทรล CheckBox มีรูปแบบการใช้งานดังนี้

Check1.BackColor [= color]
Check1.ForeColor [= color]

ตัวแปร color คือสีที่คุณต้องการ ซึ่งจะเป็นแบบการผสมจากถาดแม่สี RGB ซึ่งคุณสามารถกำหนดได้ถึง 16,777,215 สี  (&HFFFFFF&) หรือใช้ฟังก์ชัน QBColor สนับสนุน 16 สีก็ได้ ถ้าคุณกำหนดสีในขณะออกแบบ จะมีแท็บสี 2 แท็บให้คุณเลือก คือ

  • แท็บ Palette หมายถึง ต้องการใช้สีจากการผสมของแม่สี RGB ตามปกติ

clip_image008

รูปที่ 8-5 แสดงแท็บ Palette

  • แท็บ System หมายถึง ต้องการใช้สี โดยเลือกจากตัวอย่างของสีที่ควรจะเป็น ในสภาวะต่างๆ ซึ่งขึ้นอยู่กับการกำหนดสีใน Control Panel ด้วย เช่น ขณะถูก Hilight, Disable ฯลฯ เป็นต้น เป็นการอำนวยความสะดวกให้คุณ ในกรณีที่ คุณต้องการใช้สีที่เป็นมาตรฐาน และเหมาะสมกับสภาวะนั้นๆ

clip_image009

รูปที่ 8-6 แสดงแท็บ System

clip_image010

รูปที่ 8-7 แสดงผลของการกำหนดคุณสมบัติ BackColor และ ForeColor ของคอนโทรล CheckBox


Container

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดชื่อคอนโทรลบรรจุ (container) ซึ่งบรรจุคอนโทรล CheckBox ไว้ คุณสามารถอ่านค่าคุณสมบัตินี้ ได้ในขณะรันเท่านั้น ขณะออกแบบ ไม่สามารถใช้งานได้ มีรูปแบบการใช้งานดังนี้

Set Check1.Container [=container]

ตัวแปร container หมายถึง ชื่อของคอนโทรล ซึ่งบรรจุคอนโทรล CheckBox ไว้ สำหรับคอนโทรลที่สามารถเป็นตัวบรรจุได้ คือ คอนโทรล

  • คอนโทรล Frame
  • คอนโทรล PictureBox
  • คอนโทรล SSTab

DisabledPicture

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดรูปกราฟิก เพื่อใช้แทนคอนโทรล CheckBox ซึ่งคุณจะต้องกำหนดให้คุณสมบัติ Enabled=False และคุณสมบัติ Style=1 ก่อน และจะทำให้ผู้ใช้ไม่สามารถคลิ๊กเลือกที่ตัวคอนโทรล CheckBox ได้ มีรูปแบบการใช้งานดังนี้

Check1.DisabledPicture [= picture]

ตัวแปร picture หมายถึง ไฟล์รูปกราฟฟิก ซึ่งมีรายละเอียดดังนี้

กำหนดค่า

รายละเอียด

(None)

(Default) หมายถึง ไม่ต้องแสดงรูปกราฟฟิกใดทั้งสิ้น

Bitmap, icon, metafile

หมายถึง กำหนดรูปภาพกราฟฟิก ที่ใช้แทนคอนโทรล CheckBox ไฟล์กราฟฟิกที่ใช้ได้ตามเอกสารใน msdn คือ *.bmp, *.ico และ *.wmf แต่จากการทดลองของผู้เขียน คุณสามารถใช้ไฟล์ *.gif และ *.jpg ได้อีกด้วย สำหรับไฟล์ *.gif ไม่ควรใช้รูปแบบภาพเคลื่อนไหว (Gif89a) ในบางครั้งจะทำให้เกิด error ได้

clip_image011

รูปที่ 8-8 แสดงการใช้งานคุณสมบัติ DisabledPicture ของคอนโทรล CheckBox


DragIcon

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดไอคอน เพื่อใช้กับเมาส์พอยต์เตอร์ เมื่อเกิดเหตุการณ์ ลากแล้ววาง (drag-drop) มีรูปแบบการใช้งานดังนี้

Check1.DragIcon [= icon]

ตัวแปร icon หมายถึง ชื่อไฟล์ไอคอน (*.ico) หรือไฟล์เคอร์เซอร์ (*.cur) ที่คุณต้องการนำมาใช้เป็นไอคอน

ถ้าคุณต้องการกำหนดในขณะออกแบบ คุณสามารถเลือกได้จากไดอะล๊อกบ๊อกซ์ Load Icon ดังรูป แต่ถ้าคุณต้องการกำหนดในขณะรัน คุณต้องใช้ฟังก์ชัน LoadPicture ( )   สำหรับโหลดไอคอนตามที่คุณต้องการ

clip_image012

รูปที่ 8-9 แสดงไดอะล๊อกบ๊อกซ์ Load Icon


DownPicture

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดรูปกราฟฟิก เมื่อคอนโทรล CheckBox ถูกคลิ๊ก โดยมีเงื่อนไขว่า คุณจะต้องกำหนดให้คุณสมบัติ Style=1 เสียก่อน มีรูปแบบการใช้งานดังนี้

Check1.DownPicture [=picture]

ตัวแปร picture หมายถึง ไฟล์รูปกราฟฟิก ซึ่งมีรายละเอียดดังนี้

กำหนดค่า

รายละเอียด

(None)

(Default) หมายถึง ไม่ต้องแสดงรูปกราฟฟิกใดทั้งสิ้น

Bitmap, icon, metafile

หมายถึง กำหนดรูปภาพกราฟฟิก ที่ใช้แทนคอนโทรล CheckBox ไฟล์กราฟฟิกที่ใช้ได้ตามเอกสารใน msdn คือ *.bmp, *.ico และ *.wmf แต่จากการทดลองของผู้เขียน คุณสามารถใช้ไฟล์ *.gif และ *.jpg ได้อีกด้วย สำหรับไฟล์ *.gif ไม่ควรใช้รูปแบบภาพเคลื่อนไหว (Gif89a) ในบางครั้งจะทำให้เกิด error ได้

clip_image013

รูปที่ 8-10 แสดงรูปกราฟฟิกที่คุณกำหนดไว้ เมื่อคอนโทรล CheckBox ถูกคลิ๊ก


DragMode

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดโหมด (Mode) ที่จะทำให้เกิดเหตุการณ์ลากแล้ววาง (drag-drop) มีรูปแบบการใช้งานดังนี้

Check1.DragMode [= number]

ตัวแปร number หมายถึง เลขจำนวนเต็ม Integer ซึ่งเป็นตัวกำหนดโหมด มีความหมายดังนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

VbManual

0

(Default) Manual หมายถึง ผู้ใช้จะต้องเป็นผู้กระทำเองทั้งหมด ตั้งแต่การลาก จนถึงวาง

VbAutomatic

1

Automatic หมายถึง ผู้ใช้เพียงแต่คลิ๊กที่คอนโทรลต้นทางเท่านั้น แล้ว VB จะสร้างเหตุการณ์ลากแล้ววาง ให้สมบูรณ์โดยอัตโนมัติ


Enabled

คุณสมบัตินี้มีหน้าที่คืนค่า หรือกำหนดให้คอนโทรล CheckBox สามารถตอบรับ หรือตอบสนองเหตุการณ์ต่างๆ ที่อาจเกิดจากผู้ใช้ หรือเกิดจากการประมวลผลได้ มีรูปแบบการใช้งานดังนี้

Check1.Enabled [=boolean]

ตัวแปร boolean คุณสามารถกำหนดค่าได้ดังนี้

กำหนดค่า

รายละเอียด

True

(Default) หมายถึง ยอมให้คอนโทรล CheckBox สามารถตอบสนองเหตุการณ์ต่างๆ ได้ตามปกติ

False

หมายถึง ไม่อนุญาตให้คอนโทรล CheckBox ตอบสนองเหตุการณ์ใดๆ ที่เกิดขึ้นทั้งสิ้น

clip_image014

รูปที่ 8-11 แสดงสถานะของคอนโทรล CheckBox แบบ Enabled=True และ Enabled=False


Font

คุณสมบัตินี้มีหน้าที่สำหรับกำหนดรูปแบบของฟอนต์ ลักษณะของฟอนต์ และขนาดของฟอนต์ มีรูปแบบการใช้งานดังนี้

Check1.Font.Name [=fontname]
Check1.Font.Size [=points]
Check1.Font.Bold [=boolean]
Check1.Font.Italic [=boolean]
Check1.Font.Strikethru [=boolean]
Check1.Font.Underline [=boolean]

  • ตัวแปร fontname หมายถึง ชื่อของฟอนต์ที่คุณต้องการใช้ ถ้าคุณต้องการแสดงภาษาไทย คุณต้องเลือกฟอนต์ที่ลงท้ายด้วย UPC เช่น "AngsanaUPC" เป็นต้น
  • ตัวแปร points หมายถึงขนาดของฟอนต์ มีหน่วยเป็นจุด คุณควรใช้เลขจำนวนเต็มเพื่อกำหนดขนาดฟอนต์ การใช้งานระดับปกติ มีขนาด 4 pts
  • ตัวแปร boolean หมายถึง กำหนดสถานะของฟอนต์นั้นๆ เช่น Bold (ตัวหนา), Italic (ตัวเอน), Strikethru (ตัวขีดฆ่า) และ Underline (ตัวขีดเส้นใต้)

Height, Width, Left และ Top

คุณสมบัติ Height และ Width มีหน้าที่สำหรับคืนค่า หรือกำหนดขนาดความกว้าง และความสูงของคอนโทรล ส่วนคุณสมบัติ Left และ Top มีหน้าที่สำหรับคืนค่า หรือกำหนดตำแหน่งของคอนโทรล CheckBox   คุณสมบัติทั้ง 4 ตัวจะมีความสัมพันธ์กัน เมื่อคุณมีการเปลี่ยนขนาด หรือเปลี่ยนตำแหน่งของคอนโทรล Label  คุณสมบัติทั้ง 4 ตัวจะเปลี่ยนไปโดยอัตโนมัติ มีรูปแบบการใช้งานดังนี้

Check1.Height [=number]
Check1.Width [=number]
Check1.Left [=x]
Check1.Top [=y]

ตัวแปร number หมายถึง เลขจำนวนเต็มที่เป็นความสูง หรือความกว้างของคอนโทรล

ตัวแปร x,y หมายถึง ตำแหน่งของคอนโทรล โดยวัดเทียบจากมุมซ้ายบนของคอนโทรล กับมุมซ้ายบนใต้แถบ title bar ของ Form เป็นพิกัดแบบคู่ลำดับ (Co-ordinate) แต่ถ้าคอนโทรล CheckBox  วางอยู่ในคอนโทรล Frame จะวัดเทียบกับมุมซ้ายบน ของคอนโทรล Frame แทน

เนื่องจากว่าคุณสามารถใช้คุณสมบัติ Left และ Top เพื่อเคลื่อนย้ายตำแหน่งของคอนโทรลได้ เช่นเดียวกับเมธอด Move มีคำแนะนำว่า ถ้าคุณต้องการเคลื่อนย้ายคอนโทรล ให้ใช้เมธอด Move แทนการกำหนดคุณสมบัติ Left, Top เพราะสามารถประมวลผลได้เร็วกว่า


Index

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดให้คอนโทรล CheckBox   สามารถใช้งานในรูปแบบอาร์เรย์ได้ โดยที่คอนโทรลแต่ละตัวสามารถมีชื่อ (คุณสมบัติ Name) เหมือนกันได้ แต่ต่างกันที่ค่าดัชนี หรือค่า Index นั่นเอง สำหรับในการใช้งานคอนโทรลอาร์เรย์  จะเหมือนกับตัวแปรอาร์เรย์ทุกประการ มีรูปแบบการใช้งานดังนี้

Check1[(number)].Index

ตัวแปร number หมายถึง เลขจำนวนเต็ม Integer ซึ่งเป็นค่า Index ที่ทำให้คอนโทรลแต่ละตัว มีชื่อต่างกัน


MouseIcon

คุณสมบัตินี้มีหน้าที่กำหนดรูปแบบของเมาส์ เมื่อผู้ใช้เลื่อนเมาส์เข้ามาบริเวณคอนโทรล CheckBox  มีข้อแม้ว่า คุณต้องกำหนดให้คุณสมบัติ MousePointer=99 เท่านั้น เป็นการกำหนดลักษณะเมาส์ตามที่คุณต้องการ โดยที่คุณต้องมีไฟล์ไอคอน หรือไฟล์เคอร์เซอร์ด้วย มีรูปแบบการใช้งานดังนี้

Check1.MouseIcon = LoadPicture(pathname)
Check1.MouseIcon [= picture]

ตัวแปร pathname หมายถึง พาธที่เก็บชื่อไฟล์ไอคอน (*.ico) หรือไฟล์เคอร์เซอร์ (*.cur)
ตัวแปร picture หมายถึง ชื่อไฟล์ไอคอน (*.ico) หรือไฟล์เคอร์เซอร์ (*.cur) คุณระบุแต่ชื่อไฟล์เท่านั้น ซึ่ง VB จะแสดงไดอะล๊อกบ๊อกซ์ Load Icon ดังรูป

clip_image012[1]

รูปที่ 8-12 แสดงไดอะล๊อกบ๊อกซ์ Load Icon


MousePointer

คุณสมบัตินี้มีหน้าที่สำหรับ กำหนดรูปแบบของเมาส์ มีรูปแบบการใช้งานดังนี้

Check1.MousePointer [= value]

ตัวแปร Value เป็นรูปแบบของเมาส์ ซึ่งมีอยู่ด้วยกัน 16 แบบดังตารางต่อไปนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

vbDefault

0

(Default) ลักษณะของเมาส์ ขึ้นอยู่กับอ๊อบเจ็กต์ หรือการทำงานในขณะนั้น

vbArrow

1

Arrow -กำหนดให้เมาส์แสดงในลักษณะ clip_image015

vbCrosshair

2

Cross (crosshair pointer)-กำหนดให้เมาส์แสดงในลักษณะ clip_image016

vbIbeam

3

I beam-กำหนดให้เมาส์แสดงในลักษณะ clip_image017

vbIconPointer

4

กำหนดให้เมาส์แสดงในลักษณะ clip_image015[1]

vbSizePointer

5

กำหนดให้เมาส์แสดงในลักษณะ clip_image018

vbSizeNESW

6

กำหนดให้เมาส์แสดงในลักษณะ clip_image019

vbSizeNS

7

กำหนดให้เมาส์แสดงในลักษณะ clip_image020

vbSizeNWSE

8

กำหนดให้เมาส์แสดงในลักษณะ clip_image021

vbSizeWE

9

กำหนดให้เมาส์แสดงในลักษณะ clip_image022

vbUpArrow

10

กำหนดให้เมาส์แสดงในลักษณะ clip_image023

vbHourglass

11

กำหนดให้เมาส์แสดงในลักษณะ clip_image024

vbNoDrop

12

กำหนดให้เมาส์แสดงในลักษณะ clip_image025

vbArrowHourglass

13

กำหนดให้เมาส์แสดงในลักษณะ clip_image026

vbArrowQuestion

14

กำหนดให้เมาส์แสดงในลักษณะ clip_image027

vbSizeAll

15

กำหนดให้เมาส์แสดงในลักษณะ clip_image018[1]

vbCustom

99

กำหนดให้ลักษณะของเมาส์ ขึ้นอยู่กับคุณสมบัติ MouseIcon เป็นการกำหนดลักษณะของเมาส์ตามที่คุณต้องการ


Parent

คุณสมบัตินี้มีหน้าที่สำหรับรายงาน ฟอร์มหรืออ๊อบเจ็กต์ที่บรรจุคอนโทรล CheckBox ไว้ คุณสมบัตินี้คุณสามารถอ่านค่าได้เท่านั้น ไม่สามารถกำหนด่าได้ มีรูปแบบการใช้งานดังนี้

Check1.Parent


Picture

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดให้คอนโทรล CheckBox   สามารถแสดงรูปภาพบนตัวคอนโทรลได้ แต่มีข้อแม้ว่า คุณจะต้องกำหนดให้คุณสมบัติ Style=1 ก่อน มีรูปแบบการใช้งานดังนี้

Check1.Picture [=picture]

ตัวแปร picture หมายถึง ชื่อของไฟล์ภาพกราฟฟิก สำหรับชนิดของไฟล์กราฟฟิก ที่คอนโทรลสนับสนุนคือ Bitmap (*.bmp), icon(*.ico), metafile(*.wmf), GIF(*.gif) และ  JPEG (*.jpg)

สำหรับการกำหนดรูปภาพกราฟฟิก ในขณะออกแบบคุณสามารถกำหนดไฟล์กราฟฟิกได้โดยตรงจากหน้าต่างคุณสมบัติ   ซึ่งสนับสนุนไฟล์กราฟฟิกที่กล่าวมาทั้งหมด เมื่อคุณกำหนดที่หน้าต่างคุณสมบัติ มันจะแสดงไดอะล๊อกบ๊อกซ์ Load Picture ขึ้นมา ดังรูป

clip_image028

รูปที่ 8-13 แสดงไดอะล๊อกบ๊อกซ์ Load Picture

เมื่อคุณกำหนดไฟล์กราฟฟิกแล้ว ถ้าคุณ Compile โปรเจ็กต์ ไฟล์กราฟฟิกดังกล่าวจะถูกรวมเข้ากับไฟล์ *.exe โดยอัตโนมัติ

สำหรับในขณะรันคุณอาจใช้ฟังก์ชัน LoadPicture ( ) เพื่อโหลดภาพกราฟฟิกก็ได้ แต่คุณสามารถกำหนดได้เฉพาะไฟล์กราฟฟิกดังนี้ Bitmap (*.bmp), icon(*.ico) และ metafile(*.wmf) เท่านั้น


Style

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดรูปแบบของคอนโทรล CheckBox ซึ่งในขณะรัน คุณสามารถอ่านค่าคุณสมบัตินี้ได้อย่างเดียว มีรูปแบบการใช้งานดังนี้

Check1.Style[=value]

ตัวแปร value หมายถึง เลขจำนวนเต็ม Integer ใช้สำหรับกำหนดรูปแบบคอนโทรล มีความหมายดังนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

vbButtonStandard

0

(Default) หมายถึง คอนโทรล CheckBox แสดงในลักษณะปกติ

vbButtonGraphical

1

หมายถึง คอนโทรล CheckBox สามารถแสดงข้อความ และกราฟฟิกพร้อมกันได้ โดยใช้คุณสมบัติ Picture ซึ่งจะทำให้คอนโทรล CheckBox มีลักษณะคล้ายกับคอนโทรล CommandButton

clip_image029

รูปที่ 8-14 แสดงคอนโทรล CheckBox แบบปกติ และแบบที่มีกราฟฟิกประกอบ


TabIndex

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดลำดับให้คอนโทรล CheckBox   ในการรับโฟกัส เมื่อผู้ใช้กดคีย์ Tab ที่คีย์บอร์ด คุณสามารถกำหนดได้ทั้งในขณะออกแบบ และรันแอพพลิเคชัน มีรูปแบบการใช้งานดังนี้

Check1.TabIndex [=index]

ตัวแปร index หมายถึง เลขจำนวนเต็มบวก Integer เท่านั้น ซึ่งเป็นลำดับโฟกัสของคอนโทรล CheckBox ที่มีค่าตั้งแต่ 0 ถึง n-1 โดยที่ n หมายถึงจำนวนคอนโทรลที่อยู่บนฟอร์ม เรียงลำดับจากน้อยไปมาก และถ้าคุณกำหนดคุณสมบัติ TabIndex เป็นค่าลบ จะเกิด error ทันที


TabStop

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดให้คอนโทรล CheckBox   สามารถรับโฟกัส เมื่อผู้ใช้กดคีย์ Tab ที่คีย์บอร์ด ได้หรือไม่ มีรูปแบบการใช้งานดังนี้

Check1.TabStop [=boolean]

ตัวแปร boolean คุณสามารถกำหนดค่าได้ดังต่อไปนี้

กำหนดค่า

รายละเอียด

True

(Default) หมายถึง กำหนดให้คอนโทรลสามารถรับโฟกัส เมื่อผู้ใช้กดคีย์ Tab ได้ตามปกติ

False

หมายถึง กำหนดให้คอนโทรล ไม่ตอบรับลำดับการโฟกัสด้วยการกดคีย์ Tab และส่งโฟกัสต่อไปยังคอนโทรลที่อยู่ในลำดับ TabIndex ต่อไป

เป็นคุณสมบัติที่มีความสัมพันธ์กับคุณสมบัติ TabIndex เพราะว่า ถ้าคอนโทรลตัวใดตัวหนึ่ง คุณกำหนดให้คุณสมบัติ TabStop=False แล้ว เมื่อผู้ใช้กดคีย์ Tab ลำดับโฟกัสก็จะข้ามคอนโทรลที่มีคุณสมบัติ TabStop=False ไป แล้วลำดับโฟกัสจะถูกส่งต่อไปยังคอนโทรลที่มีลำดับ TabIndex ตัวต่อไป


ToolTipText

คุณสมบัตินี้มีหน้าที่สำหรับกำหนดข้อความ ToolTip เมื่อผู้ใช้ เลื่อนเมาส์มาบริเวณคอนโทรล CheckBox มีรูปแบบการใช้งานดังนี้

Check1.ToolTipText [=string]

ตัวแปร string หมายถึง ข้อความที่คุณต้องการทำ ToolTip


Visible

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดให้คอนโทรล CheckBox   สามารถมองเห็น หรือถูกซ่อนในขณะรัน มีรูปแบบการใช้งานดังนี้

Check1.Visible [=boolean]

ตัวแปร boolean คุณสามารถกำหนดค่าได้ดังนี้

กำหนดค่า

รายละเอียด

True

(Default) หมายถึง คอนโทรล CheckBox สามารถมองเห็นได้ตามปกติ

False

หมายถึง คอนโทรลจะถูกซ่อนอยู่ในหน่วยความจำ ผู้ใช้ไม่สามารถเห็นได้


เมธอดของคอนโทรล CheckBox

สำหรับเมธอดที่น่าสนใจของคอนโทรล CheckBox  มีดังนี้

Drag

เมธอดนี้มีหน้าที่สำหรับ กำหนดวิธีในกระบวนการลากแล้ววาง ตั้งแต่จุดเริ่มต้น, สิ้นสุด รวมถึงยกเลิกด้วย ไม่ว่าคุณจะกำหนดให้คุณสมบัติ DragMode อยู่ในโหมดใดก็ตาม   คุณสามารถกำหนดเมธอดนี้ได้เสมอ มีรูปแบบการใช้งานดังนี้

Check1.Drag action

ตัวแปร action มีความหมายดังนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

vbCancel

0

หมายถึง ยกเลิกกระบวนการลาก

vbBeginDrag

1

หมายถึง เริ่มต้นกระบวนการลาก

vbEndDrag

2

หมายถึง สิ้นสุดกระบวนการลาก


Move

เมธอดนี้มีหน้าที่สำหรับกำหนดให้คอนโทรล CheckBox เคลื่อนย้ายตำแหน่ง หรือปรับขนาดของคอนโทรล โดยหน่วยวัดที่ใช้ จะขึ้นอยู่กับคุณสมบัติ ScaleMode ปกติแล้วจะมีหน่วยเป็น Twip มีรูปแบบการใช้งานดังนี้

Check1.Move left[,top,width,height]

รายละเอียดของตัวแปรแต่ละตัวมีดังนี้

ตัวแปร

รายละเอียด

left

คุณต้องกำหนด หมายถึง เลขจำนวนเต็มที่เป็นตำแหน่งของคอนโทรลในแนวแกน x โดยวัดจากมุมซ้ายบน ของคอนโทรลกับ มุมซ้ายบนใต้แถบ title bar ของฟอร์ม ถ้าคอนโทรล CheckBox อยู่ในคอนโทรล Frame จะวัดเทียบกับมุมซ้ายบน ของคอนโทรล Frame แทน

top

(Optional) หมายถึง เลขจำนวนเต็มที่เป็นตำแหน่งของคอนโทรลในแนวแกน y โดยวัดจากมุมซ้ายบน ของคอนโทรลกับ มุมซ้ายบนใต้แถบ title bar ของฟอร์มเช่นกัน ถ้าคอนโทรล CheckBox อยู่ในคอนโทรล Frame จะวัดเทียบกับ มุมซ้ายบนของคอนโทรล Frame แทน

width

(Optional) หมายถึง เลขจำนวนเต็มที่เป็นความกว้างของคอนโทรล CheckBox

height

(Optional) หมายถึงเลขจำนวนเต็มที่เป็นความสูงของคอนโทรล CheckBox


Refresh

เมธอดนี้มีหน้าที่สำหรับปรับปรุงรายการที่อยู่ในตัวคอนโทรล CheckBox ให้ทันสมัย หรือ update ทันที มีรูปแบบการใช้งานดังนี้

Check1.Refresh


SetFocus

เมธอดนี้มีหน้าที่สำหรับกำหนดให้คอนโทรลที่ใช้คุณสมบัตินี้ได้รับโฟกัส (focus) หรือได้รับความสนใจทันที อาจกล่าวได้ว่า เป็นการบังคับให้คอนโทรล ได้รับความสนใจนั่นเอง มีผลให้อ๊อบเจ็กต์ หรือคอนโทรลอื่นๆ สูญเสียโฟกัสทันที มักใช้ในกรณีที่ คุณต้องการบังคับให้เกิดการกระทำ หรือประมวลผลต่อคอนโทรล ที่คุณต้องการทันที มีรูปแบบการใช้งานดังนี้

Check1.SetFocus


เหตุการณ์ของคอนโทรล CheckBox

สำหรับเหตุการณ์ที่คอนโทรล CheckBox สนับสนุนมีดังนี้

Check1_Click ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้คลิ๊กเมาส์ด้วยปุ่มซ้าย ที่บริเวณตัวคอนโทรล CheckBox มีรูปแบบการใช้งานดังนี้

Private Sub Check1_Click([index As Integer])

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว


Check1_DragDrop ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการลาก (drag) แล้ววาง (drop) โดยที่เหตุการณ์ดังกล่าวจะต้องเสร็จสิ้น และสมบูรณ์ มีรูปแบบการใช้งานดังนี้

Private Sub Check1_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) เสร็จสิ้น และสมบูรณ์แล้ว


Check1_DragOver ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการลากแล้ววาง (drag-drop) จากคอนโทรลอื่นๆ ซึ่งลากผ่านมาเหนือบริเวณที่ไม่ใช่คอนโทรลปลายทาง คุณสามารถใช้เหตุการณ์นี้ เพื่อดักจับเมาส์พอยน์เตอร์ว่า อยู่ตำแหน่งใด มีรูปแบบการใช้งานดังนี้

Private Sub Check1_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) กำลังถูกลากไปมา เหนือบริเวณเป้าหมาย

Check1_GotFocus ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อคอนโทรล CheckBox ได้รับโฟกัส เหตุการณ์นี้จะเกิดขึ้นได้ โดยมีข้อแม้ว่า คุณสมบัติ Enabled และคุณสมบัติ Visible ของคอนโทรล CheckBox จะต้องมีค่าเท่ากับ True เท่านั้น มีรูปแบบการใช้งานดังนี้

Private Sub Check1_GotFocus([index As Integer])

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว


Check1_KeyDown ( ) และ Check1_KeyUp ( )

เหตุการณ์ KeyDown ( ) จะเกิดขึ้นเมื่อ ผู้ใช้กดปุ่มใดๆ ที่คีย์บอร์ด และเหตุการณ์  KeyUp ( ) จะเกิดขึ้นต่อจากเหตุการณ์ KeyDown ( ) นั่นคือ เมื่อผู้ใช้ปล่อยปุ่มที่คีย์บอร์ด คุณจะต้องกำหนดให้คอนโทรล CheckBox ให้ได้รับโฟกัสเสียก่อน มีรูปแบบการใช้งานดังนี้

Private Sub Check1_KeyDown([index As Integer,]keycode As Integer, shift As Integer)

End Sub

Private Sub Check1_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 เป็นต้น


Check1_KeyPress ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการกด และปล่อยปุ่มที่คีย์บอร์ด แต่คุณต้องกำหนดให้คอนโทรล CheckBox ได้รับโฟกัสก่อน มีรูปแบบการใช้งานดังนี้

Private Sub Check1_KeyPress([index As Integer,]keyascii As Integer)

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว

อาร์กิวเมนต์ keyascii หมายถึง รหัสแอสกีซึ่งแทนของอักษรที่อยู่บนคีย์บอร์ด คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่ บทที่ 28 ค่าคงที่ระบบ (System Constants) ที่น่าสนใจ


Check1_LostFocus ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อคอนโทรล CheckBox สูญเสียสภาวะโฟกัส ให้กับคอนโทรล หรืออ๊อบเจ็กต์ตัวอื่นๆ อาจกล่าวได้ว่า เหตุการณ์ LostFocus ( ) จะเกิดต่อจากเหตุการณ์ GotFocus ( ) นั่นเอง มีรูปแบบการใช้งานดังนี้

Private Sub Check1_LostFocus([index As Integer])

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว


Check1_MouseDown ( ) และ Check1_MouseUp ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้กดเมาส์ (press) บริเวณตัวคอนโทรล ก็จะทำให้เกิดเหตุการณ์ MouseDown และเมื่อผู้ใช้ปล่อยเมาส์ (release) บริเวณตัวคอนโทรล ก็จะทำให้เกิดเหตุการณ์ MouseUp มีรูปแบบการใช้งานดังนี้

Private Sub Check1_MouseDown([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)

End Sub

Private Sub Check1 _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


Check1_MouseMove ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้เลื่อนเมาส์ไปมาบริเวณคอนโทรล CheckBox  มีรูปแบบการใช้งานดังนี้

Private Sub Check1_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


การใช้งานคอนโทรล OptionButton

คอนโทรลนี้จะใช้สำหรับสร้างหัวข้อ เพื่อให้ผู้ใช้เลือก ซึ่งจะมีลักษณะคล้ายๆ กับคอนโทรล CheckBox ต่างกันที่ คอนโทรล CheckBox ผู้ใช้สามารถเลือกได้หลายหัวข้อ พร้อมๆ กัน โดยที่ไม่ต้องมีการจัดกลุ่มด้วยคอนโทรล Frame แต่คอนโทรล OptionButton มีข้อจำกัดคือ   ผู้ใช้สามารถเลือกได้เพียงหัวข้อเดียวเท่านั้น (ในกรณีที่ไม่มีการจัดกลุ่ม) ถ้าคุณต้องการให้คอนโทรล OptionButton สามารถถูกผู้ใช้เลือกได้หลายหัวข้อ ในเวลาเดียวกัน คุณจะต้องใช้ร่วมกับคอนโทรล Frame เพื่อจัดกลุ่ม ถ้าคุณต้องการใช้งานคอนโทรล OptionButton โดยคลิ๊กที่ clip_image030 บนทูลบ๊อกซ์ จากรูป เป็นคอนโทรล OptionButton เมื่อปรากฎอยู่บนฟอร์ม

clip_image031

รูปที่ 8-15 แสดงคอนโทรล OptionButton เมื่อปรากฎบนฟอร์ม

ลักษณะการนำคอนโทรล OptionButton ไปใช้งาน ควรจะเป็นรูปแบบที่คุณต้องการให้ผู้ใช้เลือกหัวข้อใด หัวข้อหนึ่งเท่านั้น เช่น กรณีถามว่า เป็นชาย หรือหญิง คุณก็ควรใช้คอนโทรล OptionButton แต่ถ้าคุณใช้คอนโทรล CheckBox จะทำให้คุณงงแน่นอนครับ :-)

สำหรับการตั้งชื่อ (คุณสมบัติ Name) เพื่ออ้างอิงในการเขียนโค้ด ให้กับคอนโทรล OptionButton คุณควรจะใช้คำนำหน้า opt เช่น optSex, optType เป็นต้น ซึ่งก็จะทำให้คุณสามารถแยกแยะ การอ้างอิงคอนโทรล หรืออ๊อบเจ็กต์ต่างๆ ใน source code ได้ง่ายขึ้น

คุณสมบัติที่คุณควรทำความเข้าใจเป็นลำดับแรกๆ คือ คุณสมบัติ Caption ซึ่งหมายถึง ข้อความที่กำกับอยู่ประจำแต่ละหัวข้อ มีรูปแบบการใช้งานดังนี้

Option1.Caption [=string]

ตัวแปร string หมายถึง ข้อความที่กำกับอยู่แต่ละหัวข้อ จากรูป เป็นการแก้ไขคุณสมบัติ Caption ของคอนโทรล OptionButton 2 ตัว ซึ่งผู้ใช้สามารถเลือกหัวข้อแบบ OptionButton ได้เพียงหัวข้อเดียวเท่านั้น

clip_image032

รูปที่ 8-16 แสดงการแก้ใขคุณสมบัติ Caption ของคอนโทรล OptionButton

สำหรับอีกคุณสมบัติหนึ่งที่ควรทำความเข้าใจ คือ สถานะคอนโทรล OptionButton ที่ถูกผู้ใช้เลือก หรือไม่เลือก ซึ่งก็คือ คุณสมบัติ Value มีรูปแบบการใช้งานดังนี้

Option1.Value [=value]

ตัวแปร value มีความหมายดังนี้

ค่าตัวเลข

รายละเอียด

True

หมายถึง คอนโทรล OptionButton อยู่ในสถานะถูกเลือก clip_image033

False

(Default) หมายถึง คอนโทรล OptionButton ไม่ได้อยู่ในสถานะถูกเลือก clip_image034


คุณสมบัติของคอนโทรล OptionButton

สำหรับคุณสมบัติอื่นๆ ที่น่าสนใจของคอนโทรล OptionButton  มีดังนี้

Alignment

คุณสมบัตินี้มีหน้าที่คืนค่า หรือกำหนดรูปแบบการจัดวางของข้อความที่กำกับอยู่ที่ตัวคอนโทรล OptionButton คุณสามารถแก้ไขคุณสมบัตินี้ ได้เฉพาะตอนออกแบบเท่านั้น ส่วนในขณะรัน คุณอ่านค่าได้เพียงอย่างเดียว

Otpion1.Alignment [=number]

ตัวแปร number คุณสามารถกำหนดค่าได้ดังนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

VbLeftJustify

0

(Default) หมายถึง ข้อความที่กำกับอยู่ จะอยู่ทางด้านขวาของตัวคอนโทรล

VbRightJustify

1

หมายถึง ข้อความที่กำกับอยู่ จะอยู่ทางด้านซ้ายของตัวคอนโทรล

clip_image035

รูปที่ 8-17 แสดงข้อความบนคอนโทรล OptionButton ที่กำหนดคุณสมบัติ Alignment แบบ 0 และ1


Appearance

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดรูปแบบการปรากฎของคอนโทรล OptionButton บนฟอร์ม ในขณะรัน คุณสมบัตินี้ คุณสามารถอ่านค่า ได้เพียงอย่างเดียวเท่านั้น มีรูปแบบการใช้งานดังนี้

Option1.Appearance=[value]

ตัวแปร value หมายถึง เลขจำนวนเต็ม Integer ซึ่งมีความหมายดังนี้

กำหนดค่า

รายละเอียด

0

Flat หมายถึง ลักษณะของคอนโทรลเป็นแบบ 2 มิติ ( 2D)

1

(Default) แสดงคอนโทรลในลักษณะ 3 มิติ (3D)

clip_image036

รูปที่ 8-18 แสดงคอนโทรล OptionButton แบบ Flat และ 3D ที่ปรากฎอยู่บนฟอร์ม


BackColor และ ForeColor

คุณสมบัติ BackColor มีหน้าที่สำหรับ กำหนดสีพื้นหลัง (Background) ของตัวคอนโทรล และ คุณสมบัติ ForeColor มีหน้าที่สำหรับ กำหนดสีของข้อความ ที่ปรากฎอยู่ในคอนโทรล OptionButton มีรูปแบบการใช้งานดังนี้

Option1.BackColor [= color]
Option1.ForeColor [= color]

ตัวแปร color คือสีที่คุณต้องการ ซึ่งจะเป็นแบบการผสมจากถาดแม่สี RGB ซึ่งคุณสามารถกำหนดได้ถึง 16,777,215 สี  (&HFFFFFF&) หรือใช้ฟังก์ชัน QBColor สนับสนุน 16 สีก็ได้ ถ้าคุณกำหนดสีในขณะออกแบบ จะมีแท็บสี 2 แท็บให้คุณเลือก คือ

  • แท็บ Palette หมายถึง ต้องการใช้สีจากการผสมของแม่สี RGB ตามปกติ

clip_image008[1]

รูปที่ 8-19 แสดงแท็บ Palette

  • แท็บ System หมายถึง ต้องการใช้สี โดยเลือกจากตัวอย่างของสีที่ควรจะเป็น ในสภาวะต่างๆ ซึ่งขึ้นอยู่กับการกำหนดสีใน Control Panel ด้วย เช่น ขณะถูก Hilight, Disable ฯลฯ เป็นต้น เป็นการอำนวยความสะดวกให้คุณ ในกรณีที่ คุณต้องการใช้สีที่เป็นมาตรฐาน และเหมาะสมกับสภาวะนั้นๆ

clip_image009[1]

รูปที่ 8-20 แสดงแท็บ System

clip_image037

รูปที่ 8-21 แสดงผลของการกำหนดคุณสมบัติ BackColor และ ForeColor ของคอนโทรล OptionButton


Container

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดชื่อคอนโทรลบรรจุ (container) ซึ่งบรรจุคอนโทรล OptionButton ไว้ คุณสามารถอ่านค่าคุณสมบัตินี้ ได้ในขณะรันเท่านั้น ขณะออกแบบ ไม่สามารถใช้งานได้ มีรูปแบบการใช้งานดังนี้

Set Option1.Container [=container]

ตัวแปร container หมายถึง ชื่อของคอนโทรล ซึ่งบรรจุคอนโทรล OptionButton ไว้ สำหรับคอนโทรลที่สามารถเป็นตัวบรรจุได้ คือ คอนโทรล

  • คอนโทรล Frame
  • คอนโทรล PictureBox
  • คอนโทรล SSTab

DisabledPicture

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดรูปกราฟิก เพื่อใช้แทนคอนโทรล OptionButton ซึ่งคุณจะต้องกำหนดให้คุณสมบัติ Enabled=False และคุณสมบัติ Style=1 ก่อน และจะทำให้ผู้ใช้ไม่สามารถคลิ๊กที่ตัวคอนโทรล OptionButton ได้ มีรูปแบบการใช้งานดังนี้

Otpion1.DisabledPicture [= picture]

ตัวแปร picture หมายถึง ไฟล์รูปกราฟฟิก ซึ่งมีรายละเอียดดังนี้

กำหนดค่า

รายละเอียด

(None)

(Default) หมายถึง ไม่ต้องแสดงรูปกราฟฟิกใดทั้งสิ้น

Bitmap, icon, metafile

หมายถึง กำหนดรูปภาพกราฟฟิก ที่ใช้แทนคอนโทรล CheckBox ไฟล์กราฟฟิกที่ใช้ได้ตามเอกสารใน msdn คือ *.bmp, *.ico และ *.wmf แต่จากการทดลองของผู้เขียน คุณสามารถใช้ไฟล์ *.gif และ *.jpg ได้อีกด้วย สำหรับไฟล์ *.gif ไม่ควรใช้รูปแบบภาพเคลื่อนไหว (Gif89a) ในบางครั้งจะทำให้เกิด error ได้

clip_image038

รูปที่ 8-22 แสดงการใช้งานคุณสมบัติ DisabledPicture ของคอนโทรล OptionButton


DragIcon

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดไอคอน เพื่อใช้กับเมาส์พอยต์เตอร์ เมื่อเกิดเหตุการณ์ ลากแล้ววาง (drag-drop) มีรูปแบบการใช้งานดังนี้

Otpion1.DragIcon [= icon]

ตัวแปร icon หมายถึง ชื่อไฟล์ไอคอน (*.ico) หรือไฟล์เคอร์เซอร์ (*.cur) ที่คุณต้องการนำมาใช้เป็นไอคอน

ถ้าคุณต้องการกำหนดในขณะออกแบบ คุณสามารถเลือกได้จากไดอะล๊อกบ๊อกซ์ Load Icon ดังรูป แต่ถ้าคุณต้องการกำหนดในขณะรัน คุณต้องใช้ฟังก์ชัน LoadPicture ( )   สำหรับโหลดไอคอนตามที่คุณต้องการ

clip_image012[2]

รูปที่ 8-23 แสดงไดอะล๊อกบ๊อกซ์ Load Icon


DownPicture

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดรูปกราฟฟิก เมื่อคอนโทรล OptionButton ถูกคลิ๊ก โดยมีเงื่อนไขว่า คุณจะต้องกำหนดให้คุณสมบัติ Style=1 เสียก่อน มีรูปแบบการใช้งานดังนี้

Option1.DownPicture [=picture]

ตัวแปร picture หมายถึง ไฟล์รูปกราฟฟิก ซึ่งมีรายละเอียดดังนี้

กำหนดค่า

รายละเอียด

(None)

(Default) หมายถึง ไม่ต้องแสดงรูปกราฟฟิกใดทั้งสิ้น

Bitmap, icon, metafile

หมายถึง กำหนดรูปภาพกราฟฟิก ที่ใช้แทนคอนโทรล CheckBox ไฟล์กราฟฟิกที่ใช้ได้ตามเอกสารใน msdn คือ *.bmp, *.ico และ *.wmf แต่จากการทดลองของผู้เขียน คุณสามารถใช้ไฟล์ *.gif และ *.jpg ได้อีกด้วย สำหรับไฟล์ *.gif ไม่ควรใช้รูปแบบภาพเคลื่อนไหว (Gif89a) ในบางครั้งจะทำให้เกิด error ได้

clip_image039

รูปที่ 8-24 แสดงรูปกราฟฟิกที่คุณกำหนดไว้ เมื่อคอนโทรล OptionButton ถูกคลิ๊ก


DragMode

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดโหมด (Mode) ที่จะทำให้เกิดเหตุการณ์ลากแล้ววาง (drag-drop) มีรูปแบบการใช้งานดังนี้

Otpion1.DragMode [= number]

ตัวแปร number หมายถึง เลขจำนวนเต็ม Integer ซึ่งเป็นตัวกำหนดโหมด มีความหมายดังนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

VbManual

0

(Default) Manual หมายถึง ผู้ใช้จะต้องเป็นผู้กระทำเองทั้งหมด ตั้งแต่การลาก จนถึงวาง

VbAutomatic

1

Automatic หมายถึง ผู้ใช้เพียงแต่คลิ๊กที่คอนโทรลต้นทางเท่านั้น แล้ว VB จะสร้างเหตุการณ์ลากแล้ววาง ให้สมบูรณ์โดยอัตโนมัติ


Enabled

คุณสมบัตินี้มีหน้าที่คืนค่า หรือกำหนดให้คอนโทรล OptionButton สามารถตอบรับ หรือตอบสนองเหตุการณ์ต่างๆ ที่อาจเกิดจากผู้ใช้ หรือเกิดจากการประมวลผลได้หรือไม่ มีรูปแบบการใช้งานดังนี้

Option1.Enabled [=boolean]

ตัวแปร boolean คุณสามารถกำหนดค่าได้ดังนี้

กำหนดค่า

รายละเอียด

True

(Default) หมายถึง ยอมให้คอนโทรล OptionButton สามารถตอบสนองเหตุการณ์ต่างๆ ได้ตามปกติ

False

หมายถึง ไม่อนุญาตให้คอนโทรล OptionButton ตอบสนองเหตุการณ์ใดๆ ที่เกิดขึ้นทั้งสิ้น

clip_image040

รูปที่ 8-25 แสดงสถานะของคอนโทรล OptionButton แบบ Enabled=True และ Enabled=False


Font

คุณสมบัตินี้มีหน้าที่สำหรับกำหนดรูปแบบของฟอนต์ ลักษณะของฟอนต์ และขนาดของฟอนต์ มีรูปแบบการใช้งานดังนี้

Option1.Font.Name [=fontname]
Option1.Font.Size [=points]
Option1.Font.Bold [=boolean]
Option1.Font.Italic [=boolean]
Option1.Font.Strikethru [=boolean]
Option1.Font.Underline [=boolean]

  • ตัวแปร fontname หมายถึง ชื่อของฟอนต์ที่คุณต้องการใช้ ถ้าคุณต้องการแสดงภาษาไทย คุณต้องเลือกฟอนต์ที่ลงท้ายด้วย UPC เช่น "AngsanaUPC" เป็นต้น
  • ตัวแปร points หมายถึงขนาดของฟอนต์ มีหน่วยเป็นจุด คุณควรใช้เลขจำนวนเต็มเพื่อกำหนดขนาดฟอนต์ การใช้งานระดับปกติ มีขนาด 4 pts
  • ตัวแปร boolean หมายถึง กำหนดสถานะของฟอนต์นั้นๆ เช่น Bold (ตัวหนา), Italic (ตัวเอน), Strikethru (ตัวขีดฆ่า) และ Underline (ตัวขีดเส้นใต้)

Height, Width, Left และ Top

คุณสมบัติ Height และ Width มีหน้าที่สำหรับคืนค่า หรือกำหนดขนาดความกว้าง และความสูงของคอนโทรล ส่วนคุณสมบัติ Left และ Top มีหน้าที่สำหรับคืนค่า หรือกำหนดตำแหน่งของคอนโทรล OptionButton  คุณสมบัติทั้ง 4 ตัวจะมีความสัมพันธ์กัน เมื่อคุณมีการเปลี่ยนขนาด หรือเปลี่ยนตำแหน่งของคอนโทรล OptionButton คุณสมบัติทั้ง 4 ตัวจะเปลี่ยนไปโดยอัตโนมัติ มีรูปแบบการใช้งานดังนี้

Option1.Height [=number]
Option1.Width [=number]
Option1.Left [=x]
Option1.Top [=y]

ตัวแปร number หมายถึง เลขจำนวนเต็มที่เป็นความสูง หรือความกว้างของคอนโทรล

ตัวแปร x,y หมายถึง ตำแหน่งของคอนโทรล โดยวัดเทียบจากมุมซ้ายบนของคอนโทรล กับมุมซ้ายบนใต้แถบ title bar ของ Form เป็นพิกัดแบบคู่ลำดับ (Co-ordinate) แต่ถ้าคอนโทรล OptionButton วางอยู่ในคอนโทรล Frame จะวัดเทียบกับมุมซ้ายบน ของคอนโทรล Frame แทน

เนื่องจากว่าคุณสามารถใช้คุณสมบัติ Left และ Top เพื่อเคลื่อนย้ายตำแหน่งของคอนโทรลได้ เช่นเดียวกับเมธอด Move มีคำแนะนำว่า ถ้าคุณต้องการเคลื่อนย้ายคอนโทรล ให้ใช้เมธอด Move แทนการกำหนดคุณสมบัติ Left, Top เพราะสามารถประมวลผลได้เร็วกว่า


Index

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดให้คอนโทรล OptionButton สามารถใช้งานในรูปแบบอาร์เรย์ได้ โดยที่คอนโทรลแต่ละตัว สามารถมีชื่อ (คุณสมบัติ Name) เหมือนกันได้ แต่ต่างกันที่ค่าดัชนี หรือค่า Index นั่นเอง สำหรับในการใช้งานคอนโทรลอาร์เรย์  จะเหมือนกับตัวแปรอาร์เรย์ทุกประการ มีรูปแบบการใช้งานดังนี้

Option1[(number)].Index

ตัวแปร number หมายถึง เลขจำนวนเต็ม Integer ซึ่งเป็นค่า Index ที่ทำให้คอนโทรลแต่ละตัว มีชื่อต่างกัน


MouseIcon

คุณสมบัตินี้มีหน้าที่กำหนดรูปแบบของเมาส์ เมื่อผู้ใช้เลื่อนเมาส์เข้ามาบริเวณคอนโทรล OptionButton มีข้อแม้ว่า คุณต้องกำหนดให้คุณสมบัติ MousePointer=99 เท่านั้น เป็นการกำหนดลักษณะเมาส์ตามที่คุณต้องการ โดยที่คุณต้องมีไฟล์ไอคอน หรือไฟล์เคอร์เซอร์ด้วย มีรูปแบบการใช้งานดังนี้

Option1.MouseIcon = LoadPicture(pathname)
Option1.MouseIcon [= picture]

ตัวแปร pathname หมายถึง พาธที่เก็บชื่อไฟล์ไอคอน (*.ico) หรือไฟล์เคอร์เซอร์ (*.cur)
ตัวแปร picture หมายถึง ชื่อไฟล์ไอคอน (*.ico) หรือไฟล์เคอร์เซอร์ (*.cur) คุณระบุแต่ชื่อไฟล์เท่านั้น ซึ่ง VB จะแสดงไดอะล๊อกบ๊อกซ์ Load Icon ดังรูป

clip_image012[3]

รูปที่ 8-26 แสดงไดอะล๊อกบ๊อกซ์ Load Icon


MousePointer

คุณสมบัตินี้มีหน้าที่สำหรับ กำหนดรูปแบบของเมาส์ มีรูปแบบการใช้งานดังนี้

Option1.MousePointer [= value]

ตัวแปร Value เป็นรูปแบบของเมาส์ ซึ่งมีอยู่ด้วยกัน 16 แบบดังตารางต่อไปนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

vbDefault

0

(Default) ลักษณะของเมาส์ ขึ้นอยู่กับอ๊อบเจ็กต์ หรือการทำงานในขณะนั้น

vbArrow

1

Arrow -กำหนดให้เมาส์แสดงในลักษณะ clip_image015[2]

vbCrosshair

2

Cross (crosshair pointer)-กำหนดให้เมาส์แสดงในลักษณะ clip_image016[1]

vbIbeam

3

I beam-กำหนดให้เมาส์แสดงในลักษณะ clip_image017[1]

vbIconPointer

4

กำหนดให้เมาส์แสดงในลักษณะ clip_image015[3]

vbSizePointer

5

กำหนดให้เมาส์แสดงในลักษณะ clip_image018[2]

vbSizeNESW

6

กำหนดให้เมาส์แสดงในลักษณะ clip_image019[1]

vbSizeNS

7

กำหนดให้เมาส์แสดงในลักษณะ clip_image020[1]

vbSizeNWSE

8

กำหนดให้เมาส์แสดงในลักษณะ clip_image021[1]

vbSizeWE

9

กำหนดให้เมาส์แสดงในลักษณะ clip_image022[1]

vbUpArrow

10

กำหนดให้เมาส์แสดงในลักษณะ clip_image023[1]

vbHourglass

11

กำหนดให้เมาส์แสดงในลักษณะ clip_image024[1]

vbNoDrop

12

กำหนดให้เมาส์แสดงในลักษณะ clip_image025[1]

vbArrowHourglass

13

กำหนดให้เมาส์แสดงในลักษณะ clip_image026[1]

vbArrowQuestion

14

กำหนดให้เมาส์แสดงในลักษณะ clip_image027[1]

vbSizeAll

15

กำหนดให้เมาส์แสดงในลักษณะ clip_image018[3]

vbCustom

99

กำหนดให้ลักษณะของเมาส์ ขึ้นอยู่กับคุณสมบัติ MouseIcon เป็นการกำหนดลักษณะของเมาส์ตามที่คุณต้องการ


Parent

คุณสมบัตินี้มีหน้าที่สำหรับรายงาน ฟอร์มหรืออ๊อบเจ็กต์ที่บรรจุคอนโทรล OptionButton ไว้ คุณสมบัตินี้คุณสามารถอ่านค่าได้เท่านั้น ไม่สามารถกำหนด่าได้ มีรูปแบบการใช้งานดังนี้

Option1.Parent


Picture

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดให้คอนโทรล OptionButton  สามารถแสดงรูปภาพบนตัวคอนโทรลได้ แต่มีข้อแม้ว่า คุณจะต้องกำหนดให้คุณสมบัติ Style=1 ก่อน มีรูปแบบการใช้งานดังนี้

Option1.Picture [=picture]

ตัวแปร picture หมายถึง ชื่อของไฟล์ภาพกราฟฟิก สำหรับชนิดของไฟล์กราฟฟิก ที่คอนโทรลสนับสนุนคือ Bitmap (*.bmp), icon(*.ico), metafile(*.wmf), GIF(*.gif) และ  JPEG (*.jpg)

สำหรับการกำหนดรูปภาพกราฟฟิก ในขณะออกแบบคุณสามารถกำหนดไฟล์กราฟฟิกได้โดยตรงจากหน้าต่างคุณสมบัติ   ซึ่งสนับสนุนไฟล์กราฟฟิกที่กล่าวมาทั้งหมด เมื่อคุณกำหนดที่หน้าต่างคุณสมบัติ มันจะแสดงไดอะล๊อกบ๊อกซ์ Load Picture ขึ้นมา ดังรูป

clip_image028[1]

รูปที่ 8-27 แสดงไดอะล๊อกบ๊อกซ์ Load Picture

เมื่อคุณกำหนดไฟล์กราฟฟิกแล้ว ถ้าคุณ Compile โปรเจ็กต์ ไฟล์กราฟฟิกดังกล่าวจะถูกรวมเข้ากับไฟล์ *.exe โดยอัตโนมัติ

สำหรับในขณะรันคุณอาจใช้ฟังก์ชัน LoadPicture ( ) เพื่อโหลดภาพกราฟฟิกก็ได้ แต่คุณสามารถกำหนดได้เฉพาะไฟล์กราฟฟิกดังนี้ Bitmap (*.bmp), icon(*.ico) และ metafile(*.wmf) เท่านั้น


Style

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดรูปแบบของคอนโทรล OptionButton ซึ่งในขณะรัน คุณสามารถอ่านค่าคุณสมบัตินี้ได้อย่างเดียว มีรูปแบบการใช้งานดังนี้

Option1.Style[=value]

ตัวแปร value หมายถึง เลขจำนวนเต็ม Integer ใช้สำหรับกำหนดรูปแบบคอนโทรล มีความหมายดังนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

vbButtonStandard

0

(Default) หมายถึง คอนโทรล OptionButton แสดงในลักษณะปกติ

vbButtonGraphical

1

หมายถึง คอนโทรล OptionButton สามารถแสดงข้อความ และกราฟฟิกพร้อมกันได้ โดยใช้คุณสมบัติ Picture ซึ่งจะทำให้คอนโทรล OptionButton มีลักษณะคล้ายกับคอนโทรล CommandButton

clip_image041

รูปที่ 8-28 แสดงคอนโทรล OptionButton แบบปกติ และแบบที่มีกราฟฟิกประกอบ


TabIndex

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดลำดับให้คอนโทรล OptionButton ในการรับโฟกัส เมื่อผู้ใช้กดคีย์ Tab ที่คีย์บอร์ด คุณสามารถกำหนดได้ทั้งในขณะออกแบบ และรันแอพพลิเคชัน มีรูปแบบการใช้งานดังนี้

Option1.TabIndex [=index]

ตัวแปร index หมายถึง เลขจำนวนเต็มบวก Integer เท่านั้น ซึ่งเป็นลำดับโฟกัสของคอนโทรล OptionButton ที่มีค่าตั้งแต่ 0 ถึง n-1 โดยที่ n หมายถึงจำนวนคอนโทรลที่อยู่บนฟอร์ม เรียงลำดับจากน้อยไปมาก และถ้าคุณกำหนดคุณสมบัติ TabIndex เป็นค่าลบ จะเกิด error ทันที


TabStop

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดให้คอนโทรล OptionButton สามารถรับโฟกัส เมื่อผู้ใช้กดคีย์ Tab ที่คีย์บอร์ด ได้หรือไม่ มีรูปแบบการใช้งานดังนี้

Option1.TabStop [=boolean]

ตัวแปร boolean คุณสามารถกำหนดค่าได้ดังต่อไปนี้

กำหนดค่า

รายละเอียด

True

(Default) หมายถึง กำหนดให้คอนโทรลสามารถรับโฟกัส เมื่อผู้ใช้กดคีย์ Tab ได้ตามปกติ

False

หมายถึง กำหนดให้คอนโทรล ไม่ตอบรับลำดับการโฟกัสด้วยการกดคีย์ Tab และส่งโฟกัสต่อไปยังคอนโทรลที่อยู่ในลำดับ TabIndex ต่อไป

เป็นคุณสมบัติที่มีความสัมพันธ์กับคุณสมบัติ TabIndex เพราะว่า ถ้าคอนโทรลตัวใดตัวหนึ่ง คุณกำหนดให้คุณสมบัติ TabStop=False แล้ว เมื่อผู้ใช้กดคีย์ Tab ลำดับโฟกัสก็จะข้ามคอนโทรลที่มีคุณสมบัติ TabStop=False ไป แล้วลำดับโฟกัสจะถูกส่งต่อไปยังคอนโทรลที่มีลำดับ TabIndex ตัวต่อไป


ToolTipText

คุณสมบัตินี้มีหน้าที่สำหรับกำหนดข้อความ ToolTip เมื่อผู้ใช้ เลื่อนเมาส์มาบริเวณคอนโทรล OptionButton มีรูปแบบการใช้งานดังนี้

Otpion1.ToolTipText [=string]

ตัวแปร string หมายถึง ข้อความที่คุณต้องการทำ ToolTip


Visible

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดให้คอนโทรล OptionButton สามารถมองเห็น หรือถูกซ่อนในขณะรัน มีรูปแบบการใช้งานดังนี้

Option1.Visible [=boolean]

ตัวแปร boolean คุณสามารถกำหนดค่าได้ดังนี้

กำหนดค่า

รายละเอียด

True

(Default) หมายถึง คอนโทรล OptionButton สามารถมองเห็นได้ตามปกติ

False

หมายถึง คอนโทรลจะถูกซ่อนอยู่ในหน่วยความจำ ผู้ใช้ไม่สามารถเห็นได้


เมธอดของคอนโทรล OptionButton

สำหรับเมธอดที่น่าสนใจของคอนโทรล OptionButton  มีดังนี้

Drag

เมธอดนี้มีหน้าที่สำหรับ กำหนดวิธีในกระบวนการลากแล้ววาง ตั้งแต่จุดเริ่มต้น, สิ้นสุด รวมถึงยกเลิกด้วย ไม่ว่าคุณจะกำหนดให้คุณสมบัติ DragMode อยู่ในโหมดใดก็ตาม   คุณสามารถกำหนดเมธอดนี้ได้เสมอ มีรูปแบบการใช้งานดังนี้

Option1.Drag action

ตัวแปร action มีความหมายดังนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

vbCancel

0

หมายถึง ยกเลิกกระบวนการลาก

vbBeginDrag

1

หมายถึง เริ่มต้นกระบวนการลาก

vbEndDrag

2

หมายถึง สิ้นสุดกระบวนการลาก


Move

เมธอดนี้มีหน้าที่สำหรับกำหนดให้คอนโทรล OptionButton เคลื่อนย้ายตำแหน่ง หรือปรับขนาดของคอนโทรล โดยหน่วยวัดที่ใช้ จะขึ้นอยู่กับคุณสมบัติ ScaleMode ปกติแล้วจะมีหน่วยเป็น Twip มีรูปแบบการใช้งานดังนี้

Option1.Move left[,top,width,height]

รายละเอียดของตัวแปรแต่ละตัวมีดังนี้

ตัวแปร

รายละเอียด

left

คุณต้องกำหนด หมายถึง เลขจำนวนเต็มที่เป็นตำแหน่งของคอนโทรลในแนวแกน x โดยวัดจากมุมซ้ายบน ของคอนโทรลกับ มุมซ้ายบนใต้แถบ title bar ของฟอร์ม ถ้าคอนโทรล OptionButton อยู่ในคอนโทรล Frame จะวัดเทียบกับมุมซ้ายบน ของคอนโทรล Frame แทน

top

(Optional) หมายถึง เลขจำนวนเต็มที่เป็นตำแหน่งของคอนโทรลในแนวแกน y โดยวัดจากมุมซ้ายบน ของคอนโทรลกับ มุมซ้ายบนใต้แถบ title bar ของฟอร์มเช่นกัน ถ้าคอนโทรล OptionButton อยู่ในคอนโทรล Frame จะวัดเทียบกับ มุมซ้ายบนของคอนโทรล Frame แทน

width

(Optional) หมายถึง เลขจำนวนเต็มที่เป็นความกว้างของคอนโทรล OptionButton

height

(Optional) หมายถึงเลขจำนวนเต็มที่เป็นความสูงของคอนโทรล OptionButton


Refresh

เมธอดนี้มีหน้าที่สำหรับปรับปรุงรายการที่อยู่ในตัวคอนโทรล OptionButton ให้ทันสมัย หรือ update ทันที มีรูปแบบการใช้งานดังนี้

Option1.Refresh


SetFocus

เมธอดนี้มีหน้าที่สำหรับกำหนดให้คอนโทรลที่ใช้คุณสมบัตินี้ได้รับโฟกัส (focus) หรือได้รับความสนใจทันที อาจกล่าวได้ว่า เป็นการบังคับให้คอนโทรล ได้รับความสนใจนั่นเอง มีผลให้อ๊อบเจ็กต์ หรือคอนโทรลอื่นๆ สูญเสียโฟกัสทันที มักใช้ในกรณีที่ คุณต้องการบังคับให้เกิดการกระทำ หรือประมวลผล ต่อคอนโทรลที่คุณต้องการทันที มีรูปแบบการใช้งานดังนี้

Option1.SetFocus


เหตุการณ์ของคอนโทรล OptionButton

สำหรับเหตุการณ์ที่คอนโทรล OptionButton สนับสนุนมีดังนี้

Option1_Click ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้คลิ๊กเมาส์ด้วยปุ่มซ้าย ที่บริเวณตัวคอนโทรล OptionButton มีรูปแบบการใช้งานดังนี้

Private Sub Option1_Click([index As Integer])

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว


Option1_DblClick ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้ดับเบิลคลิ๊กที่บริเวณตัวคอนโทรล OptionButton มีรูปแบบการใช้งานดังนี้

Private Sub Option1_DblClick([index As Integer])

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว


Option1_DragDrop ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการลาก (drag) แล้ววาง (drop) โดยที่เหตุการณ์ดังกล่าวจะต้องเสร็จสิ้น และสมบูรณ์ มีรูปแบบการใช้งานดังนี้

Private Sub Option1_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) เสร็จสิ้น และสมบูรณ์แล้ว


Option1_DragOver ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการลากแล้ววาง (drag-drop) จากคอนโทรลอื่นๆ ซึ่งลากผ่านมาเหนือบริเวณที่ไม่ใช่คอนโทรลปลายทาง คุณสามารถใช้เหตุการณ์นี้ เพื่อดักจับเมาส์พอยน์เตอร์ว่า อยู่ตำแหน่งใด มีรูปแบบการใช้งานดังนี้

Private Sub Option1_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) กำลังถูกลากไปมา เหนือบริเวณเป้าหมาย

Option1_GotFocus ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อคอนโทรล OptionButton ได้รับโฟกัส เหตุการณ์นี้จะเกิดขึ้นได้ โดยมีข้อแม้ว่า คุณสมบัติ Enabled และคุณสมบัติ Visible ของคอนโทรล OptionButton จะต้องมีค่าเท่ากับ True เท่านั้น มีรูปแบบการใช้งานดังนี้

Private Sub Option1_GotFocus([index As Integer])

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว


Option1_KeyDown ( ) และ Option1_KeyUp ( )

เหตุการณ์ KeyDown ( ) จะเกิดขึ้นเมื่อ ผู้ใช้กดปุ่มใดๆ ที่คีย์บอร์ด และเหตุการณ์  KeyUp ( ) จะเกิดขึ้นต่อจากเหตุการณ์ KeyDown ( ) นั่นคือ เมื่อผู้ใช้ปล่อยปุ่มที่คีย์บอร์ด คุณจะต้องกำหนดให้คอนโทรล OptionButton ให้ได้รับโฟกัสเสียก่อน มีรูปแบบการใช้งานดังนี้

Private Sub Option1_KeyDown([index As Integer,]keycode As Integer, shift As Integer)

End Sub

Private Sub Option1_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 เป็นต้น


Option1_KeyPress ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการกด และปล่อยปุ่มที่คีย์บอร์ด มีรูปแบบการใช้งานดังนี้

Private Sub Option1_KeyPress([index As Integer,]keyascii As Integer)

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว

อาร์กิวเมนต์ keyascii หมายถึง รหัสแอสกีซึ่งแทนของอักษรที่อยู่บนคีย์บอร์ด คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่ บทที่ 28 ค่าคงที่ระบบ (System Constants) ที่น่าสนใจ


Option1_LostFocus ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อคอนโทรล OptionButton สูญเสียสภาวะโฟกัส ให้กับคอนโทรล หรืออ๊อบเจ็กต์ตัวอื่นๆ อาจกล่าวได้ว่า เหตุการณ์ LostFocus ( ) จะเกิดต่อจากเหตุการณ์ GotFocus ( ) นั่นเอง มีรูปแบบการใช้งานดังนี้

Private Sub Option1_LostFocus([index As Integer])

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว


Option1_MouseDown ( ) และ Option1_MouseUp ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้กดเมาส์ (press) บริเวณตัวคอนโทรล ก็จะทำให้เกิดเหตุการณ์ MouseDown และเมื่อผู้ใช้ปล่อยเมาส์ (release) บริเวณตัวคอนโทรล ก็จะทำให้เกิดเหตุการณ์ MouseUp มีรูปแบบการใช้งานดังนี้

Private Sub Option1_MouseDown([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)

End Sub

Private Sub Option1 _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


Option1_MouseMove ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้เลื่อนเมาส์ไปมาบริเวณคอนโทรล OptionButton  มีรูปแบบการใช้งานดังนี้

Private Sub Option1_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


การใช้งานคอนโทรล Frame

คอนโทรล Frame เป็นคอนโทรลที่ลักษณะเช่นเดียวกับฟอร์ม กล่าวคือ คอนโทรล Frame ถือว่าเป็นตัวบรรจุ (Container) เหมือนกับฟอร์ม ซึ่งมักจะใช้สำหรับจัดกลุ่ม (Grouping) คอนโทรลต่างๆ ที่ปรากฎอยู่บนฟอร์ม เช่น จัดกลุ่มให้กับคอนโทรล OptionButton มีผลทำให้คอนโทรล OptionButton ที่อยู่ในแต่ละกลุ่ม แยกออกจากกัน ไม่เกี่ยวกัน ทำให้ผู้ใช้สามารถเลือกหัวข้อที่เป็นแบบ   OptionButton ได้มากกว่า 1 หัวข้อในเวลาเดียวกัน ซึ่งถ้าคุณไม่มีการจัดกลุ่มด้วยคอนโทรล Frame แล้ว ผู้ใช้จะสามารถเลือกหัวข้อที่เป็นแบบ OptionButton ได้เพียง 1 หัวข้อในเวลาเดียวกันเท่านั้น คุณสามารถเลือกใช้งานคอนโทรล Frame ได้โดยการคลิ๊กที่ปุ่ม clip_image042 บนทูลบ๊อกซ์ จากรูปเป็นคอนโทรล Frame เมื่อปรากฎอยู่บนฟอร์ม

clip_image043

รูปที่ 8-29 แสดงคอนโทรล Frame เมื่อปรากฎอยู่บนฟอร์ม

เนื่องจากข้อจำกัดของคอนโทรล OptionButton ที่ผู้ใช้สามารถเลือกได้เพียงครั้งละ 1 หัวข้อในเวลาเดียวกัน แต่ถ้าคุณนำคอนโทรล OptionButton มาใช้งานร่วมกับคอนโทรล Frame ซึ่งมีผลทำให้ผู้ใช้ สามารถเลือกหัวข้อในแต่ละกลุ่มได้

clip_image044

รูปที่ 8-30 แสดงการใช้งานคอนโทรล OptionButton ร่วมกับคอนโทรล Frame เพื่อจัดกลุ่ม

ในการใช้งานคอนโทรล Frame เพื่อจัดกลุ่มคอนโทรล OptionButton หรือคอนโทรลอื่นๆ จะมีขั้นตอนอยู่เล็กน้อย ให้คุณทำดังนี้

  • วาดคอนโทรล Frame บนฟอร์มก่อน
  • จากนั้นให้คุณคลิ๊กเลือกคอนโทรล เช่น คอนโทรล OptionButton แล้ววาดตัวคอนโทรลดังกล่าว ในคอนโทรล Frame สำหรับขั้นตอนนี้ คุณอย่าดับเบิ้ลคลิ๊กเลือกคอนโทรล ตามความเคยชินเด็ดขาด เพราะ VB จะตีความว่า คุณต้องการใช้งานคอนโทรลดังกล่าว โดยขึ้นตรงกับฟอร์ม ทำให้คุณไม่สามารถใช้งานคอนโทรล Frame เพื่อจัดกลุ่มได้ ซึ่งส่งผลให้ผู้ใช้ไม่สามารถเลือกหัวข้อได้มากกว่า 1 หัวข้อในเวลาเดียวกัน ให้คุณระมัดระวังในจุดนี้

เมื่อคอนโทรลตัวใดก็ตาม ถ้าถูกจัดกลุ่มด้วยคอนโทรล Frame แล้วตำแหน่งการอ้างอิง จะวัดจากมุมซ้ายบนของคอนโทรลนั้นๆ กับมุมซ้ายบนของคอนโทรล Frame ทันที ไม่ใช่มุมซ้ายบนของฟอร์ม เนื่องจากว่า คอนโทรล Frame มีสถานะเป็นตัวบรรจุเช่นเดียวกับฟอร์มนั่นเอง

คุณสมบัติตัวแรกที่คุณควรทราบก็คือ คุณสมบัติ Caption ซึ่งหมายถึง ข้อความที่กำกับอยู่ที่กรอบนั่นเอง มีรูปแบบการใช้งานดังนี้

Frame1.Caption [=string]

ตัวแปร string หมายถึง ข้อความที่คุณต้องการแสดงกำกับอยู่ที่กรอบ

แต่ถ้าคุณไม่ต้องการแสดงข้อความที่บริเวณกรอบ ให้คุณกำหนดคุณสมบัติ Caption เท่ากับสตริงว่าง ดังรูป

clip_image045

รูปที่ 8-31 แสดงคอนโทรล Frame แบบมีข้อความและไม่มีข้อความ

สำหรับการตั้งชื่อ (คุณสมบัติ Name) ในการอ้างอิงเพื่อเขียนโค้ด ให้คุณใช้คำนำหน้าว่า fra เช่น fraLeft, fraRight เป็นต้น อย่าสับสนกับคำนำหน้าของฟอร์ม (frm) เนื่องจากมีความคล้ายคลึงกัน


คุณสมบัติของคอนโทรล Frame

สำหรับคุณสมบัติอื่นๆ ที่น่าสนใจของคอนโทรล Frame มีดังนี้

Appearance

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดรูปแบบการปรากฎของคอนโทรล Frame บนฟอร์ม ในขณะรัน คุณสมบัตินี้ คุณสามารถอ่านค่า ได้เพียงอย่างเดียวเท่านั้น มีรูปแบบการใช้งานดังนี้

Frame1.Appearance=[value]

ตัวแปร value หมายถึง เลขจำนวนเต็ม Integer ซึ่งมีความหมายดังนี้

กำหนดค่า

รายละเอียด

0

Flat หมายถึง ลักษณะของคอนโทรลเป็นแบบ 2 มิติ ( 2D)

1

(Default) แสดงคอนโทรลในลักษณะ 3 มิติ (3D)

clip_image046

รูปที่ 8-32 แสดงคอนโทรล Frame แบบ 3D และแบบ Flat


BackColor และ ForeColor

คุณสมบัติ BackColor มีหน้าที่สำหรับ กำหนดสีพื้นหลัง (Background) ของตัวคอนโทรล ส่วนคุณสมบัติ ForeColor มีหน้าที่สำหรับ กำหนดสีของข้อความ ที่ปรากฎอยู่ในคอนโทรล Frame มีรูปแบบการใช้งานดังนี้

Frame1.BackColor [= color]
Frame1.ForeColor [= color]

ตัวแปร color คือสีที่คุณต้องการ ซึ่งจะเป็นแบบการผสมจากถาดแม่สี RGB ซึ่งคุณสามารถกำหนดได้ถึง 16,777,215 สี  (&HFFFFFF&) หรือใช้ฟังก์ชัน QBColor สนับสนุน 16 สีก็ได้ ถ้าคุณกำหนดสีในขณะออกแบบ จะมีแท็บสี 2 แท็บให้คุณเลือก คือ

  • แท็บ Palette หมายถึง ต้องการใช้สีจากการผสมของแม่สี RGB ตามปกติ

clip_image008[2]

รูปที่ 8-33 แสดงแท็บ Palette

  • แท็บ System หมายถึง ต้องการใช้สี โดยเลือกจากตัวอย่างของสีที่ควรจะเป็น ในสภาวะต่างๆ ซึ่งขึ้นอยู่กับการกำหนดสีใน Control Panel ด้วย เช่น ขณะถูก Hilight, Disable ฯลฯ เป็นต้น เป็นการอำนวยความสะดวกให้คุณ ในกรณีที่ คุณต้องการใช้สีที่เป็นมาตรฐาน และเหมาะสมกับสภาวะนั้นๆ

clip_image009[2]

รูปที่ 8-34 แสดงแท็บ System

clip_image047

รูปที่ 8-35 แสดงผลของการกำหนดคุณสมบัติ BackColor และ ForeColor ของคอนโทรล Frame


Container

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดชื่อคอนโทรลบรรจุ (container) ซึ่งบรรจุคอนโทรล Frame ไว้ คุณสามารถอ่านค่าคุณสมบัตินี้ ได้ในขณะรันเท่านั้น ขณะออกแบบ ไม่สามารถใช้งานได้ มีรูปแบบการใช้งานดังนี้

Set Frame1.Container [=container]

ตัวแปร container หมายถึง ชื่อของคอนโทรล ซึ่งบรรจุคอนโทรล Frame ไว้ สำหรับคอนโทรลที่สามารถเป็นตัวบรรจุได้ คือ คอนโทรล

  • คอนโทรล PictureBox
  • คอนโทรล SSTab

DragIcon

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดไอคอน เพื่อใช้กับเมาส์พอยต์เตอร์ เมื่อเกิดเหตุการณ์ ลากแล้ววาง (drag-drop) มีรูปแบบการใช้งานดังนี้

Frame1.DragIcon [= icon]

ตัวแปร icon หมายถึง ชื่อไฟล์ไอคอน (*.ico) หรือไฟล์เคอร์เซอร์ (*.cur) ที่คุณต้องการนำมาใช้เป็นไอคอน

ถ้าคุณต้องการกำหนดในขณะออกแบบ คุณสามารถเลือกได้จากไดอะล๊อกบ๊อกซ์ Load Icon ดังรูป แต่ถ้าคุณต้องการกำหนดในขณะรัน คุณต้องใช้ฟังก์ชัน LoadPicture ( )   สำหรับโหลดไอคอนตามที่คุณต้องการ

clip_image012[4]

รูปที่ 8-36 แสดงไดอะล๊อกบ๊อกซ์ Load Icon


DragMode

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดโหมด (Mode) ที่จะทำให้เกิดเหตุการณ์ลากแล้ววาง (drag-drop) มีรูปแบบการใช้งานดังนี้

Frame1.DragMode [= number]

ตัวแปร number หมายถึง เลขจำนวนเต็ม Integer ซึ่งเป็นตัวกำหนดโหมด มีความหมายดังนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

VbManual

0

(Default) Manual หมายถึง ผู้ใช้จะต้องเป็นผู้กระทำเองทั้งหมด ตั้งแต่การลาก จนถึงวาง

VbAutomatic

1

Automatic หมายถึง ผู้ใช้เพียงแต่คลิ๊กที่คอนโทรลต้นทางเท่านั้น แล้ว VB จะสร้างเหตุการณ์ลากแล้ววาง ให้สมบูรณ์โดยอัตโนมัติ


Enabled

คุณสมบัตินี้มีหน้าที่คืนค่า หรือกำหนดให้คอนโทรล Frame สามารถตอบรับ หรือตอบสนองเหตุการณ์ต่างๆ ที่อาจเกิดจากผู้ใช้ หรือเกิดจากการประมวลผลได้หรือไม่ มีรูปแบบการใช้งานดังนี้

Frame1.Enabled [=boolean]

ตัวแปร boolean คุณสามารถกำหนดค่าได้ดังนี้

กำหนดค่า

รายละเอียด

True

(Default) หมายถึง ยอมให้คอนโทรล Frame สามารถตอบสนองเหตุการณ์ต่างๆ ได้ตามปกติ

False

หมายถึง ไม่อนุญาตให้คอนโทรล Frame ตอบสนองเหตุการณ์ใดๆ ที่เกิดขึ้นทั้งสิ้น

clip_image048

รูปที่ 8-37 แสดงสถานะของคอนโทรล Frame แบบ Enabled=True และ Enabled=False

ถ้าในกรณีที่คอนโทรล Frame บรรจุคอนโทรลอื่นๆ ไว้ เช่น คอนโทรล OptionButton, CheckBox เป็นต้น แล้วคุณกำหนดให้คุณสมบัติ Enabled=False   ก็จะส่งผลทำให้ คอนโทรลที่ถูกบรรจุโดยคอนโทรล Frame ทั้งหมด ไม่ตอบสนองเหตุการณ์ต่างๆ ที่เกิดจากผู้ใช้เช่นกัน จากรูป ผู้ใช้ไม่สามารถคลิ๊กเลือก Option 2 เนื่องจากว่า คุณสมบัติ Enabled=False นั่นเอง


Font

คุณสมบัตินี้มีหน้าที่สำหรับกำหนดรูปแบบของฟอนต์ ลักษณะของฟอนต์ และขนาดของฟอนต์ มีรูปแบบการใช้งานดังนี้

Frame1.Font.Name [=fontname]
Frame1.Font.Size [=points]
Frame1.Font.Bold [=boolean]
Frame1.Font.Italic [=boolean]
Frame1.Font.Strikethru [=boolean]
Frame1.Font.Underline [=boolean]

  • ตัวแปร fontname หมายถึง ชื่อของฟอนต์ที่คุณต้องการใช้ ถ้าคุณต้องการแสดงภาษาไทย คุณต้องเลือกฟอนต์ที่ลงท้ายด้วย UPC เช่น "AngsanaUPC" เป็นต้น
  • ตัวแปร points หมายถึงขนาดของฟอนต์ มีหน่วยเป็นจุด คุณควรใช้เลขจำนวนเต็มเพื่อกำหนดขนาดฟอนต์ การใช้งานระดับปกติ มีขนาด 4 pts
  • ตัวแปร boolean หมายถึง กำหนดสถานะของฟอนต์นั้นๆ เช่น Bold (ตัวหนา), Italic (ตัวเอน), Strikethru (ตัวขีดฆ่า) และ Underline (ตัวขีดเส้นใต้)

Height, Width, Left และ Top

คุณสมบัติ Height และ Width มีหน้าที่สำหรับคืนค่า หรือกำหนดขนาดความกว้าง และความสูงของคอนโทรล ส่วนคุณสมบัติ Left และ Top มีหน้าที่สำหรับคืนค่า หรือกำหนดตำแหน่งของคอนโทรล OptionButton  คุณสมบัติทั้ง 4 ตัวจะมีความสัมพันธ์กัน เมื่อคุณมีการเปลี่ยนขนาด หรือเปลี่ยนตำแหน่งของคอนโทรล Frame คุณสมบัติทั้ง 4 ตัวจะเปลี่ยนไปโดยอัตโนมัติ มีรูปแบบการใช้งานดังนี้

Frame1.Height [=number]
Frame1.Width [=number]
Frame1.Left [=x]
Frame1.Top [=y]

ตัวแปร number หมายถึง เลขจำนวนเต็มที่เป็นความสูง หรือความกว้างของคอนโทรล

ตัวแปร x,y หมายถึง ตำแหน่งของคอนโทรล โดยวัดเทียบจากมุมซ้ายบนของคอนโทรล กับมุมซ้ายบนใต้แถบ title bar ของ Form เป็นพิกัดแบบคู่ลำดับ (Co-ordinate)

เนื่องจากว่าคุณสามารถใช้คุณสมบัติ Left และ Top เพื่อเคลื่อนย้ายตำแหน่งของคอนโทรลได้ เช่นเดียวกับเมธอด Move มีคำแนะนำว่า ถ้าคุณต้องการเคลื่อนย้ายคอนโทรล ให้ใช้เมธอด Move แทนการกำหนดคุณสมบัติ Left, Top เพราะสามารถประมวลผลได้เร็วกว่า


Index

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดให้คอนโทรลFrame สามารถใช้งานในรูปแบบอาร์เรย์ได้ โดยที่คอนโทรลแต่ละตัว สามารถมีชื่อ (คุณสมบัติ Name) เหมือนกันได้ แต่ต่างกันที่ค่าดัชนี หรือค่า Index นั่นเอง สำหรับในการใช้งานคอนโทรลอาร์เรย์  จะเหมือนกับตัวแปรอาร์เรย์ทุกประการ มีรูปแบบการใช้งานดังนี้

Frame1[(number)].Index

ตัวแปร number หมายถึง เลขจำนวนเต็ม Integer ซึ่งเป็นค่า Index ที่ทำให้คอนโทรลแต่ละตัว มีชื่อต่างกัน


MouseIcon

คุณสมบัตินี้มีหน้าที่กำหนดรูปแบบของเมาส์ เมื่อผู้ใช้เลื่อนเมาส์เข้ามาบริเวณคอนโทรล Frame มีข้อแม้ว่า คุณต้องกำหนดให้คุณสมบัติ MousePointer=99 เท่านั้น เป็นการกำหนดลักษณะเมาส์ตามที่คุณต้องการ โดยที่คุณต้องมีไฟล์ไอคอน หรือไฟล์เคอร์เซอร์ด้วย มีรูปแบบการใช้งานดังนี้

Frame1.MouseIcon = LoadPicture(pathname)
Frame1.MouseIcon [= picture]

ตัวแปร pathname หมายถึง พาธที่เก็บชื่อไฟล์ไอคอน (*.ico) หรือไฟล์เคอร์เซอร์ (*.cur)
ตัวแปร picture หมายถึง ชื่อไฟล์ไอคอน (*.ico) หรือไฟล์เคอร์เซอร์ (*.cur) คุณระบุแต่ชื่อไฟล์เท่านั้น ซึ่ง VB จะแสดงไดอะล๊อกบ๊อกซ์ Load Icon ดังรูป

clip_image012[5]

รูปที่ 8-38 แสดงไดอะล๊อกบ๊อกซ์ Load Icon


MousePointer

คุณสมบัตินี้มีหน้าที่สำหรับ กำหนดรูปแบบของเมาส์ มีรูปแบบการใช้งานดังนี้

Frame1.MousePointer [= value]

ตัวแปร Value เป็นรูปแบบของเมาส์ ซึ่งมีอยู่ด้วยกัน 16 แบบดังตารางต่อไปนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

vbDefault

0

(Default) ลักษณะของเมาส์ ขึ้นอยู่กับอ๊อบเจ็กต์ หรือการทำงานในขณะนั้น

vbArrow

1

Arrow -กำหนดให้เมาส์แสดงในลักษณะ clip_image015[4]

vbCrosshair

2

Cross (crosshair pointer)-กำหนดให้เมาส์แสดงในลักษณะ clip_image016[2]

vbIbeam

3

I beam-กำหนดให้เมาส์แสดงในลักษณะ clip_image017[2]

vbIconPointer

4

กำหนดให้เมาส์แสดงในลักษณะ clip_image015[5]

vbSizePointer

5

กำหนดให้เมาส์แสดงในลักษณะ clip_image018[4]

vbSizeNESW

6

กำหนดให้เมาส์แสดงในลักษณะ clip_image019[2]

vbSizeNS

7

กำหนดให้เมาส์แสดงในลักษณะ clip_image020[2]

vbSizeNWSE

8

กำหนดให้เมาส์แสดงในลักษณะ clip_image021[2]

vbSizeWE

9

กำหนดให้เมาส์แสดงในลักษณะ clip_image022[2]

vbUpArrow

10

กำหนดให้เมาส์แสดงในลักษณะ clip_image023[2]

vbHourglass

11

กำหนดให้เมาส์แสดงในลักษณะ clip_image024[2]

vbNoDrop

12

กำหนดให้เมาส์แสดงในลักษณะ clip_image025[2]

vbArrowHourglass

13

กำหนดให้เมาส์แสดงในลักษณะ clip_image026[2]

vbArrowQuestion

14

กำหนดให้เมาส์แสดงในลักษณะ clip_image027[2]

vbSizeAll

15

กำหนดให้เมาส์แสดงในลักษณะ clip_image018[5]

vbCustom

99

กำหนดให้ลักษณะของเมาส์ ขึ้นอยู่กับคุณสมบัติ MouseIcon เป็นการกำหนดลักษณะของเมาส์ตามที่คุณต้องการ


Parent

คุณสมบัตินี้มีหน้าที่สำหรับรายงาน ฟอร์มหรืออ๊อบเจ็กต์ที่บรรจุคอนโทรล Frame ไว้ คุณสมบัตินี้คุณสามารถอ่านค่าได้เท่านั้น ไม่สามารถกำหนด่าได้ มีรูปแบบการใช้งานดังนี้

Frame1.Parent


TabIndex

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดลำดับให้คอนโทรล Frame ในการรับโฟกัส เมื่อผู้ใช้กดคีย์ Tab ที่คีย์บอร์ด คุณสามารถกำหนดได้ทั้งในขณะออกแบบ และรันแอพพลิเคชัน มีรูปแบบการใช้งานดังนี้

Frame1.TabIndex [=index]

ตัวแปร index หมายถึง เลขจำนวนเต็มบวก Integer เท่านั้น ซึ่งเป็นลำดับโฟกัสของคอนโทรล Frame ที่มีค่าตั้งแต่ 0 ถึง n-1 โดยที่ n หมายถึงจำนวนคอนโทรลที่อยู่บนฟอร์ม เรียงลำดับจากน้อยไปมาก และถ้าคุณกำหนดคุณสมบัติ TabIndex เป็นค่าลบ จะเกิด error ทันที


ToolTipText

คุณสมบัตินี้มีหน้าที่สำหรับกำหนดข้อความ ToolTip เมื่อผู้ใช้ เลื่อนเมาส์มาบริเวณคอนโทรล Frame มีรูปแบบการใช้งานดังนี้

Frame1.ToolTipText [=string]

ตัวแปร string หมายถึง ข้อความที่คุณต้องการทำ ToolTip


Visible

คุณสมบัตินี้มีหน้าที่สำหรับคืนค่า หรือกำหนดให้คอนโทรล Frame สามารถมองเห็น หรือถูกซ่อนในขณะรัน มีรูปแบบการใช้งานดังนี้

Frame1.Visible [=boolean]

ตัวแปร boolean คุณสามารถกำหนดค่าได้ดังนี้

กำหนดค่า

รายละเอียด

True

(Default) หมายถึง คอนโทรล Frame สามารถมองเห็นได้ตามปกติ

False

หมายถึง คอนโทรลจะถูกซ่อนอยู่ในหน่วยความจำ ผู้ใช้ไม่สามารถเห็นได้


เมธอดของคอนโทรล Frame

สำหรับเมธอดที่น่าสนใจของคอนโทรล Frame  มีดังนี้

Drag

เมธอดนี้มีหน้าที่สำหรับ กำหนดวิธีในกระบวนการลากแล้ววาง ตั้งแต่จุดเริ่มต้น, สิ้นสุด รวมถึงยกเลิกด้วย ไม่ว่าคุณจะกำหนดให้คุณสมบัติ DragMode อยู่ในโหมดใดก็ตาม   คุณสามารถกำหนดเมธอดนี้ได้เสมอ มีรูปแบบการใช้งานดังนี้

Frame1.Drag action

ตัวแปร action มีความหมายดังนี้

ค่าคงที่

ค่าตัวเลข

รายละเอียด

vbCancel

0

หมายถึง ยกเลิกกระบวนการลาก

vbBeginDrag

1

หมายถึง เริ่มต้นกระบวนการลาก

vbEndDrag

2

หมายถึง สิ้นสุดกระบวนการลาก


Move

เมธอดนี้มีหน้าที่สำหรับกำหนดให้คอนโทรล Frame เคลื่อนย้ายตำแหน่ง หรือปรับขนาดของคอนโทรล โดยหน่วยวัดที่ใช้ จะขึ้นอยู่กับคุณสมบัติ ScaleMode ปกติแล้วจะมีหน่วยเป็น Twip มีรูปแบบการใช้งานดังนี้

Frame1.Move left[,top,width,height]

รายละเอียดของตัวแปรแต่ละตัวมีดังนี้

ตัวแปร

รายละเอียด

left

คุณต้องกำหนด หมายถึง เลขจำนวนเต็มที่เป็นตำแหน่งของคอนโทรลในแนวแกน x โดยวัดจากมุมซ้ายบน ของคอนโทรลกับ มุมซ้ายบนใต้แถบ title bar ของฟอร์ม

top

(Optional) หมายถึง เลขจำนวนเต็มที่เป็นตำแหน่งของคอนโทรลในแนวแกน y โดยวัดจากมุมซ้ายบน ของคอนโทรลกับ มุมซ้ายบนใต้แถบ title bar ของฟอร์มเช่นกัน

width

(Optional) หมายถึง เลขจำนวนเต็มที่เป็นความกว้างของคอนโทรล Frame

height

(Optional) หมายถึงเลขจำนวนเต็มที่เป็นความสูงของคอนโทรล Frame


Refresh

เมธอดนี้มีหน้าที่สำหรับปรับปรุงรายการที่อยู่ในตัวคอนโทรล Frame ให้ทันสมัย หรือ update ทันที มีรูปแบบการใช้งานดังนี้

Frame1.Refresh


เหตุการณ์ของคอนโทรล Frame

สำหรับเหตุการณ์ที่คอนโทรล Frame สนับสนุนมีดังนี้

Frame1_Click ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้คลิ๊กเมาส์ด้วยปุ่มซ้าย ที่บริเวณตัวคอนโทรล Frame มีรูปแบบการใช้งานดังนี้

Private Sub Frame1_Click([index As Integer])

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว


Frame1_DblClick ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้ดับเบิลคลิ๊กที่บริเวณตัวคอนโทรล Frame มีรูปแบบการใช้งานดังนี้

Private Sub Frame1_DblClick([index As Integer])

End Sub

อาร์กิวเมนต์ index หมายถึง เลขจำนวนเต็ม Integer ที่เป็นค่าดัชนี จะใช้ในกรณีที่เป็นคอนโทรลอาร์เรย์ ซึ่งจะเป็นตัวบอกความแตกต่าง ของคอนโทรลอาร์เรย์แต่ละตัว


Frame1_DragDrop ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการลาก (drag) แล้ววาง (drop) โดยที่เหตุการณ์ดังกล่าวจะต้องเสร็จสิ้น และสมบูรณ์ มีรูปแบบการใช้งานดังนี้

Private Sub Frame1_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) เสร็จสิ้น และสมบูรณ์แล้ว


Frame1_DragOver ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้มีการลากแล้ววาง (drag-drop) จากคอนโทรลอื่นๆ ซึ่งลากผ่านมาเหนือบริเวณที่ไม่ใช่คอนโทรลปลายทาง คุณสามารถใช้เหตุการณ์นี้ เพื่อดักจับเมาส์พอยน์เตอร์ว่า อยู่ตำแหน่งใด มีรูปแบบการใช้งานดังนี้

Private Sub Frame1_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) กำลังถูกลากไปมา เหนือบริเวณเป้าหมาย

Frame1_MouseDown ( ) และ Frame1_MouseUp ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้กดเมาส์ (press) บริเวณตัวคอนโทรล ก็จะทำให้เกิดเหตุการณ์ MouseDown และเมื่อผู้ใช้ปล่อยเมาส์ (release) บริเวณตัวคอนโทรล ก็จะทำให้เกิดเหตุการณ์ MouseUp มีรูปแบบการใช้งานดังนี้

Private Sub Frame1_MouseDown([index As Integer,]button As Integer, shift As Integer, x As Single, y As Single)

End Sub

Private Sub Frame1 _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


Frame1_MouseMove ( )

เป็นเหตุการณ์ที่เกิดขึ้น เมื่อผู้ใช้เลื่อนเมาส์ไปมา บริเวณคอนโทรล Frame  มีรูปแบบการใช้งานดังนี้

Private Sub Frame1_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