ให้ผู้ใช้มีการควบคุมให้เลือก
แอปพลิเคชันส่วนใหญ่จำเป็นต้องให้ตัวเลือกแก่ผู้ใช้ เช่น ตัวเลือก "ใช่/ไม่ใช่" แบบง่ายๆ หรือเลือกจากรายการที่เป็นไปได้หลายร้อยรายการ Visual Basic มีการควบคุมมาตรฐานหลายประการสำหรับการเลือก ตารางต่อไปนี้สรุปการควบคุมเหล่านี้และการใช้งาน
เลือกตัวเลือกเดียวด้วยช่องทำเครื่องหมาย
ช่องทำเครื่องหมายระบุว่ามีการเลือกสถานะเฉพาะ (เปิด) หรือล้าง (ปิด) การใช้กล่องกาเครื่องหมายในแอปพลิเคชันจะทำให้ผู้ใช้มีตัวเลือก "จริง/เท็จ" หรือ "ใช่/ไม่ใช่" เนื่องจากช่องทำเครื่องหมายทำงานแยกจากกัน ผู้ใช้จึงสามารถเลือกช่องทำเครื่องหมายได้มากเท่าที่ต้องการในเวลาเดียวกัน ตัวอย่างเช่น ในรูปที่ 3.9 สามารถเลือกได้ทั้งตัวหนาและตัวเอียง
แอปช่องทำเครื่องหมาย
ตัวอย่างนี้ใช้กล่องกาเครื่องหมายเพื่อกำหนดว่าข้อความควรแสดงเป็นแบบอักษรปกติหรือตัวเอียง สำหรับตัวอย่างเวอร์ชันที่ใช้งานได้ โปรดดูที่ Check.frm ในตัวอย่างแอปพลิเคชัน Controls.vbp ดังแสดงในรูปที่ 3.10 แอปพลิเคชันนี้ประกอบด้วยกล่องข้อความ ป้ายกำกับ ปุ่มคำสั่ง และกล่องกาเครื่องหมายสองช่อง
ตารางต่อไปนี้แสดงรายการการตั้งค่าคุณสมบัติสำหรับออบเจ็กต์ในแอปพลิเคชัน
เมื่อเลือกตัวหนาหรือตัวเอียง คุณสมบัติ Value ของกล่องกาเครื่องหมายจะถูกตั้งค่าเป็น 1 และเป็น 0 เมื่อไม่ได้เลือก ค่าเริ่มต้นคือ 0 ดังนั้น เว้นแต่คุณจะเปลี่ยนคุณสมบัติ Value กล่องกาเครื่องหมายจะไม่ถูกเลือกเมื่อแสดงครั้งแรก คุณสามารถใช้ค่าคงที่ vbChecked และ vbUnchecked เพื่อแสดงค่า 1 และ 0
เหตุการณ์ในแอปพลิเคชันช่องทำเครื่องหมาย
เมื่อมีการคลิกช่องทำเครื่องหมาย เหตุการณ์การคลิกของช่องทำเครื่องหมายจะเกิดขึ้น ขั้นตอนเหตุการณ์นี้จะทดสอบว่ากล่องกาเครื่องหมายถูกเลือกหรือไม่ (นั่นคือ ค่า=vbChecked) หากเลือกไว้ จะแปลงข้อความเป็นตัวหนาหรือตัวเอียงโดยการตั้งค่าคุณสมบัติตัวหนาหรือตัวเอียงของวัตถุแบบอักษรที่ส่งคืนโดยคุณสมบัติแบบอักษรของกล่องข้อความ
ส่วนตัวSubchkBold_Click()
IfChkBold.Value=vbCheckedแล้ว 'ถ้าเลือก'
txtDisplay.Font.Bold=จริง
มิฉะนั้น 'หากไม่ได้เลือก'
txtDisplay.Font.Bold=เท็จ
สิ้นสุดถ้า
สิ้นสุดย่อย
PrivateSubchkItalic_Click()
IfChkItalic.Value=vbCheckedThen 'ถ้าเลือก'
txtDisplay.Font.Italic=จริง
มิฉะนั้น 'หากไม่ได้เลือก'
txtDisplay.Font.Italic=เท็จ
สิ้นสุดถ้า
สิ้นสุดย่อย
ตัวเลือกกลุ่มโดยใช้ปุ่มตัวเลือก
ปุ่มตัวเลือกแสดงถึงชุดตัวเลือกตั้งแต่สองตัวเลือกขึ้นไปที่มอบให้แก่ผู้ใช้ อย่างไรก็ตาม ปุ่มตัวเลือกต่างจากกล่องกาเครื่องหมายตรงที่ทำงานเป็นส่วนหนึ่งของกลุ่ม ดังนั้น การเลือกปุ่มตัวเลือกจะล้างปุ่มอื่นๆ ในกลุ่มทันที กำหนดกลุ่มปุ่มตัวเลือกที่บอกผู้ใช้ว่า "นี่คือชุดตัวเลือก เลือกอย่างใดอย่างหนึ่งเท่านั้น"
ตัวอย่างเช่น ในกลุ่มปุ่มตัวเลือกที่แสดงในรูปที่ 3.11 ผู้ใช้สามารถเลือกได้เพียงปุ่มใดปุ่มหนึ่งจากสามปุ่มเท่านั้น
สร้างกลุ่มปุ่มตัวเลือก
ปุ่มตัวเลือกทั้งหมดที่อยู่ในฟอร์มโดยตรง (ซึ่งไม่ใช่ในกรอบหรือ PictureBox) จะรวมกลุ่มกัน ถ้าคุณต้องการสร้างกลุ่มปุ่มตัวเลือกอื่นๆ คุณต้องวางบางกลุ่มไว้ใน Frame หรือ PictureBox
ปุ่มตัวเลือกทั้งหมดในเฟรมที่กำหนดจะสร้างกลุ่มแยกกัน เช่นเดียวกับปุ่มตัวเลือกทั้งหมดใน PictureBox เมื่อใช้วิธีการนี้เพื่อสร้างกลุ่มอิสระ คุณต้องวาดกรอบหรือ PictureBox ก่อน จากนั้นจึงวาดปุ่มตัวเลือกภายใน รูปที่ 3.12 แสดงแบบฟอร์มที่มีกลุ่มปุ่มตัวเลือกสองกลุ่ม
หลังจากวาดกลุ่มของปุ่มตัวเลือกใน Frame แล้ว ผู้ใช้จะสามารถเลือกปุ่มตัวเลือกได้เพียงปุ่มเดียวภายในกลุ่มเท่านั้น หากต้องการจัดกลุ่มตัวควบคุมในเฟรม ให้ทำตามขั้นตอนเหล่านี้:
1. เลือกตัวควบคุมเฟรมใน "กล่องเครื่องมือ" และวาดเฟรมบนแบบฟอร์ม
2. เลือกตัวควบคุม OptionButton ใน "กล่องเครื่องมือ" และวาดตัวควบคุมใน Frame
3. หากคุณต้องการเพิ่มปุ่มตัวเลือกให้กับ Frame ให้ทำซ้ำขั้นตอนที่ 2 วาดเฟรมก่อน จากนั้นจึงวาดแต่ละตัวควบคุมบนเฟรม เพื่อว่าเมื่อเฟรมถูกย้าย ตัวควบคุมจะย้ายพร้อมกัน หากคุณย้ายตัวควบคุมที่มีอยู่ไปยังเฟรม ตัวควบคุมจะไม่ย้ายไปพร้อมกับเฟรม
โปรดทราบว่า หากคุณจัดกลุ่มตัวควบคุมที่มีอยู่ลงในเฟรม คุณสามารถเลือกตัวควบคุมเหล่านี้ จากนั้นตัดและวางลงในตัวควบคุมเฟรมหรือรูปภาพได้
คอนเทนเนอร์ควบคุม
เมื่อตัวควบคุมเป็นวัตถุอิสระ มีความสัมพันธ์แบบแม่ลูกระหว่างแบบฟอร์มและตัวควบคุมบางชนิด รูปที่ 3.12 แสดงให้เห็นว่าปุ่มตัวเลือกสามารถอยู่ภายในแบบฟอร์มหรือตัวควบคุมเฟรมได้อย่างไร
เพื่อให้เข้าใจแนวคิดของคอนเทนเนอร์ ขั้นแรกให้จินตนาการว่าตัวควบคุมทั้งหมดเป็นรายการย่อยของแบบฟอร์มที่พวกเขาอยู่ ในความเป็นจริง ตัวควบคุมส่วนใหญ่สนับสนุนคุณสมบัติพาเรนต์แบบอ่านอย่างเดียว ซึ่งค่าคือรูปแบบที่ตัวควบคุมนั้นอยู่ เมื่อเป็นรายการย่อย ตัวควบคุมจะกำหนดตำแหน่งในแบบฟอร์มหลัก คุณสมบัติด้านซ้ายและคุณสมบัติบนสุดของตัวควบคุมจะสัมพันธ์กับฟอร์มหลัก และตัวควบคุมไม่สามารถย้ายเกินขอบเขตของฟอร์มหลักได้ เมื่อคอนเทนเนอร์ถูกย้าย ตัวควบคุมจะถูกย้ายด้วย ดังนั้นตำแหน่งสัมพัทธ์ของตัวควบคุมและคอนเทนเนอร์ยังคงไม่เปลี่ยนแปลง (นั่นคือ คุณสมบัติ ด้านซ้าย และ คุณสมบัติบนสุดของตัวควบคุมยังคงไม่เปลี่ยนแปลง)
เลือกหรือปิดใช้งานปุ่มตัวเลือก
สามารถเลือกปุ่มตัวเลือกได้ด้วยวิธีต่อไปนี้:
1.คลิกปุ่มตัวเลือกด้วยเมาส์ของคุณในระหว่างรันไทม์
2. ใช้แป้น Tab เพื่อค้นหากลุ่มปุ่มตัวเลือก จากนั้นใช้แป้นลูกศร (แป้นลูกศร) เพื่อค้นหาปุ่มตัวเลือกภายในกลุ่ม
3. ตั้งค่าคุณสมบัติ Value เป็น True โดยใช้โค้ด: optChoice.Value=True
4. ใช้ปุ่มลัดที่ระบุในชื่อฉลาก
5. หากต้องการให้ปุ่มเป็นปุ่มเริ่มต้นในกลุ่มปุ่มตัวเลือก เพียงตั้งค่าคุณสมบัติ Value เป็น True ในขณะออกแบบ มันยังคงถูกเลือกจนกว่าผู้ใช้จะเลือกปุ่มตัวเลือกอื่นหรือเปลี่ยนแปลงด้วยรหัส
หากต้องการปิดใช้งานปุ่มตัวเลือก ให้ตั้งค่าคุณสมบัติ Enabled เป็น False เมื่อโปรแกรมกำลังทำงาน หากปุ่มตัวเลือกนี้เปลี่ยนเป็นสีเทา หมายความว่าไม่สามารถเลือกปุ่มตัวเลือกนี้ได้
แอพตัวเลือก
แบบฟอร์มที่แสดงในรูปที่ 3.13 ใช้ปุ่มตัวเลือกเพื่อเลือกประเภทโปรเซสเซอร์และระบบปฏิบัติการสำหรับคอมพิวเตอร์ เมื่อผู้ใช้เลือกปุ่มตัวเลือกภายในกลุ่ม ชื่อของป้ายกำกับจะเปลี่ยนเพื่อแสดงการเลือกในปัจจุบัน สำหรับตัวอย่างเวอร์ชันที่ใช้งานได้ โปรดดูที่ Options.frm ในตัวอย่างแอปพลิเคชัน Controls.vbp
ตารางต่อไปนี้แสดงรายการการตั้งค่าสำหรับคุณสมบัติของวัตถุในแอปพลิเคชัน
เหตุการณ์ในแอปพลิเคชันตัวเลือก
แอปพลิเคชันตัวเลือกตอบสนองต่อเหตุการณ์ดังต่อไปนี้:
เหตุการณ์การคลิกของปุ่มตัวเลือกสามปุ่มแรกจะกำหนดคำอธิบายที่สอดคล้องกับตัวแปรสตริงระดับฟอร์ม strComputer
เหตุการณ์การคลิกของปุ่มตัวเลือกสองปุ่มหลังจะกำหนดคำอธิบายที่สอดคล้องกับตัวแปร strSystem ระดับฟอร์มที่สอง
กุญแจสำคัญของวิธีนี้คือการใช้ตัวแปรระดับแบบฟอร์มทั้งสองนี้ strComputer และ strSystem ตัวแปรทั้งสองนี้มีค่าสตริงที่แตกต่างกัน และการเลือกปุ่มตัวเลือกขั้นสุดท้ายจะขึ้นอยู่กับค่าเหล่านี้
แต่ละครั้งที่มีการเลือกปุ่มตัวเลือกใหม่ โค้ดสำหรับเหตุการณ์การคลิกจะอัปเดตค่าของตัวแปรที่เกี่ยวข้อง
ส่วนตัวSubopt586_คลิก()
strComputer=เพนเทียม
โทรแสดงคำอธิบายภาพ
สิ้นสุดย่อย
จากนั้นจะเรียกขั้นตอนที่เรียกว่า DisplayCaption ซึ่งจะเชื่อมตัวแปรสองตัวเข้าด้วยกันและเปลี่ยนคุณสมบัติคำบรรยายของ Label
คำบรรยายการแสดงผลย่อย()
lblDisplay.Caption=คุณเลือกแล้ว&
_strคอมพิวเตอร์&ทำงาน&strSystem
สิ้นสุดย่อย
รูทีนย่อยถูกใช้เนื่องจากกระบวนการเปลี่ยนคุณสมบัติ Caption โดยพื้นฐานแล้วจะเหมือนกันสำหรับปุ่มตัวเลือกทั้งห้าปุ่ม ยกเว้นว่าค่าของตัวแปรจะแตกต่างกันไปขึ้นอยู่กับสถานการณ์ วิธีนี้จะช่วยหลีกเลี่ยงการทำซ้ำโค้ดเดียวกันในทุกเหตุการณ์การคลิก
รายละเอียดของ ตัวแปรและกระบวนการย่อยจะกล่าวถึงในบทที่ 5 "พื้นฐานการเขียนโปรแกรม"
การใช้กล่องรายการและ ComboBox
ListBox และ ComboBox ให้ทางเลือกแก่ผู้ใช้ ตามค่าเริ่มต้น ตัวเลือกจะแสดงในคอลัมน์เดี่ยวแนวตั้ง แต่สามารถตั้งค่าเป็นหลายคอลัมน์ได้ ถ้าจำนวนรายการเกินจำนวนที่ ComboBox หรือ ListBox สามารถแสดงได้ ScrollBar จะปรากฏบนตัวควบคุมโดยอัตโนมัติ จากนั้นผู้ใช้สามารถเลื่อนขึ้น ลง ซ้าย และขวาผ่านรายการได้ รูปที่ 3.14 แสดงกล่องรายการแบบคอลัมน์เดียว
ComboBox มีฟังก์ชั่นทั้ง TextBox และ ListBox การควบคุมนี้อนุญาตให้ผู้ใช้ทำการเลือกโดยพิมพ์ข้อความหรือเลือกรายการในรายการ รูปที่ 3.15 แสดง ComboBox
ตรงกันข้ามกับการควบคุมอื่นๆ ที่มีค่าเดียว เช่น คุณสมบัติคำอธิบายภาพของ Label หรือคุณสมบัติข้อความของกล่องข้อความ ListBox และ ComboBox มีหลายค่าหรือคอลเลกชันของค่า ใช้วิธีการในตัวเพื่อเพิ่ม ลบ และคงค่าไว้ในคอลเลกชันขณะรันไทม์ เมื่อต้องการเพิ่มหลายรายการลงในกล่องรายการชื่อ List1 รหัสจะเป็นดังนี้: List1.AddItemParis
List1.AddItemNewYork
List1.AddItemSanFrancisco
ListBox และ ComboBox เป็นวิธีที่มีประสิทธิภาพในการมอบตัวเลือกจำนวนมากให้กับผู้ใช้ในพื้นที่จำกัด
สำหรับข้อมูลเพิ่มเติม เกี่ยวกับตัวควบคุมกล่องรายการและ ComboBox ดูบทที่ 7 "การใช้ตัวควบคุมมาตรฐานของ Visual Basic"
-