คอมโบ VB.NetBox ควบคุมด้วยตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

วงดนตรีผสมBox ใน VB.Net คือ Windows ตัวควบคุมแบบฟอร์มที่รวมช่องข้อความเข้ากับรายการแบบดรอปดาวน์ ช่วยให้ผู้ใช้สามารถเลือกรายการเดียวหรือพิมพ์รายการลงไปได้ ซึ่งช่วยประหยัดพื้นที่บนแบบฟอร์ม

  • 🎯 วัตถุประสงค์: แสดงรายการแบบดรอปดาวน์เพื่อให้ผู้ใช้เลือกหรือพิมพ์ค่าใดค่าหนึ่ง
  • เพิ่มรายการ: ใส่ข้อมูลลงในคอมโบว์บ็อกซ์ในหน้าต่าง Properties หรือโดยใช้ Items.Add ในระหว่างการทำงาน
  • 🔍 อ่านตัวอย่าง: SelectedItem, SelectedIndex และ Text จะส่งคืนค่าที่ผู้ใช้เลือก
  • 🗄️ ผูกข้อมูล: กำหนดค่า DataSource, DisplayMember และ ValueMember เพื่อโหลดแถวจากชุดข้อมูล
  • 🔔 ตรวจจับการเปลี่ยนแปลง: อีเวนต์ SelectedIndexChanged จะเกิดขึ้นทุกครั้งที่มีการเปลี่ยนแปลงรายการที่เลือก
  • 🤖 ความช่วยเหลือจาก AI: GitHub Copilot และ Visual Studio IntelliCode เขียนคอมโบBox จะมีตัวจัดการเหตุการณ์ขณะที่คุณพิมพ์

คอมโบ VB.NetBox Control

Combobox Control คืออะไร?

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

การสร้างคอมโบบ็อกซ์

คอมโบBox สามารถสร้างได้ดังนี้:

ขั้นตอนที่ 1) สร้างแอปพลิเคชันใหม่

ขั้นตอนที่ 2) ลากตัวควบคุมคอมโบ้บ็อกซ์จากกล่องเครื่องมือไปยังฟอร์ม

ตัวควบคุม ComboBox ของ VB.Net ลากจากกล่องเครื่องมือมาวางบน Windows ฟอร์ม

คุณจะได้สร้างตัวควบคุมกล่องคอมโบแล้ว

การเพิ่มรายการลงใน Combobox

ตอนนี้เราได้สร้างกล่องคอมโบแล้ว มาดูกันว่าจะเพิ่มรายการลงไปได้อย่างไร

Double คลิกที่ตัวควบคุมคอมโบบ็อกซ์ที่คุณเพิ่มเข้าไป คุณจะย้ายจากแท็บการออกแบบไปยังแท็บที่มีโค้ด

หากต้องการเพิ่มรายการลงในกล่องรวมข้อมูล เราจะใช้คุณสมบัติรายการ มาสาธิตโดยเพิ่มรายการ 2 รายการลงในกล่องรวมข้อมูล ได้แก่ ชายและหญิง:

ComboBox1.Items.Add("Male")
ComboBox1.Items.Add("Female")

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

ขั้นตอนที่ 1) เปิดแท็บออกแบบแล้วคลิกที่ตัวควบคุมคอมโบ้บ็อกซ์

ขั้นตอนที่ 2) ไปที่หน้าต่าง Properties และดูตัวเลือก Items

ขั้นตอนที่ 3) คลิกที่ … ซึ่งอยู่ทางด้านขวาของ (คอลเลกชัน)

การเพิ่มรายการลงในคอมโบว์บ็อกซ์ VB.Net ด้วยโค้ดโดยใช้เมธอด Items.Add

หน้าต่าง Properties ของ VB.Net เปิดตัวแก้ไขคอลเลกชันรายการแบบคอมโบ

ขั้นตอนที่ 4) คุณจะเห็นหน้าต่างใหม่ นี่คือที่ที่คุณควรเพิ่มรายการลงในคอมโบ้บ็อกซ์ ดังแสดงในภาพด้านล่าง:

ตัวแก้ไขคอลเลกชันสตริงแสดงรายการตัวเลือกชายและหญิง

ขั้นตอนที่ 5) เมื่อทำเสร็จแล้วping จากนั้นคลิกปุ่ม OK เมื่อเลือกรายการเสร็จแล้ว

ขั้นตอนที่ 6) คลิกปุ่ม Start จากแถบเครื่องมือด้านบน แล้วคลิกไอคอนดรอปดาวน์ในกล่องคอมโบ

คอมโบว์บ็อกซ์ VB.Net แสดงตัวเลือก "ชาย" เป็นค่าเริ่มต้นขณะรันโปรแกรม

รายการได้รับการเพิ่มลงในตัวควบคุมกล่องรวมข้อมูลสำเร็จแล้ว

การเลือกไอเทม Combobox

คุณอาจจำเป็นต้องตั้งค่ารายการเริ่มต้นที่จะเลือกเมื่อโหลดแบบฟอร์ม คุณสามารถทำได้โดยใช้เมธอด SelectedItem() ตัวอย่างเช่น หากต้องการตั้งค่าเพศที่เลือกเริ่มต้นเป็นชาย คุณสามารถใช้คำสั่งต่อไปนี้:

ComboBox1.SelectedItem = "Male"

เมื่อคุณรันโค้ด ตัวควบคุมคอมโบบ็อกซ์ควรเป็นดังแสดงด้านล่างนี้:

ฟอร์ม VB.Net แสดงกล่องคอมโบที่มีตัวเลือก เพศชาย และ เพศหญิง

การดึงค่าจาก Combobox

คุณสามารถดึงรายการที่เลือกจากคอมโบว์บ็อกซ์ของคุณได้ โดยใช้คุณสมบัติ text เราจะสาธิตวิธีการนี้โดยใช้คอมโบว์บ็อกซ์ด้านบนที่มีสองรายการ คือ ชายและหญิง ทำตามขั้นตอนด้านล่างนี้:

ขั้นตอน 1) Double คลิกที่ช่องเลือกเพื่อเปิดแท็บที่มีโค้ด VB.Net

ขั้นตอนที่ 2) เพิ่มโค้ดต่อไปนี้:

Public Class Form1
    Private Sub ComboBox1_SelectedIndexChanged(sd As Object, evnt As EventArgs) Handles ComboBox1.SelectedIndexChanged

        Dim var_gender As String

        var_gender = ComboBox1.Text

        MessageBox.Show(var_gender)
		
    End Sub
End Class

ขั้นตอนที่ 3) คลิกปุ่ม Start จากแถบเครื่องมือเพื่อเรียกใช้โค้ด คุณควรจะได้แบบฟอร์มดังต่อไปนี้:

Code ภาพหน้าจอของตัวจัดการเหตุการณ์ SelectedIndexChanged ในคอมโบว์บ็อกซ์ VB.Net

ขั้นตอนที่ 4) คลิกปุ่มดรอปดาวน์และเลือกเพศของคุณ ในกรณีของฉัน ฉันเลือกเพศชาย และฉันได้รับผลลัพธ์ดังต่อไปนี้:

กล่องข้อความ VB.Net แสดงข้อความของรายการที่เลือกในคอมโบบ็อกซ์ว่า "ชาย"

นี่คือภาพหน้าจอของรหัส:

คำอธิบายของ Code:

  1. การสร้างคลาสชื่อ Form1 ชั้นเรียนจะสามารถเข้าถึงได้แบบสาธารณะเนื่องจากมีการตั้งค่าตัวแก้ไขการเข้าถึงเป็นสาธารณะ
  2. เริ่มกระบวนการย่อยชื่อ ComboBox1_SelectedIndexChanged เหตุการณ์นี้จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อคุณดับเบิ้ลคลิกที่ตัวควบคุมคอมโบ้บ็อกซ์จากแท็บออกแบบ ขั้นตอนย่อยนี้จะถูกเรียกใช้เมื่อคุณเลือกรายการจากคอมโบ้บ็อกซ์ sd As Object อ้างอิงถึงวัตถุที่ทำให้เกิดเหตุการณ์ ในขณะที่ evnt As EventArgs เก็บข้อมูลเหตุการณ์
  3. สร้างตัวแปรประเภท String ชื่อ var_gender
  4. การกำหนดค่าของตัวแปร var_gender ให้กับรายการที่เลือกบนกล่องคอมโบ
  5. การพิมพ์ค่าของตัวแปร var_gender ลงในข้อความBox.
  6. จุดสิ้นสุดของคอมโบBox1_ขั้นตอนย่อย SelectedIndexChanged
  7. สิ้นสุดคลาส Form1

การลบรายการ Combobox

คุณสามารถลบรายการออกจากกล่องคอมโบได้ มีสองวิธีที่จะทำได้ คุณสามารถใช้ดัชนีรายการหรือชื่อของรายการก็ได้

เมื่อใช้ดัชนีรายการ คุณควรใช้คุณสมบัติ Items.RemoveAt() ดังที่แสดงด้านล่าง:

ComboBox1.Items.RemoveAt(1)

ในตัวอย่างข้างต้น เราจะลบรายการที่อยู่ในดัชนี 1 ของคอมโบบ็อกซ์ โปรดทราบว่าดัชนีของคอมโบบ็อกซ์เริ่มต้นที่ดัชนี 0 ซึ่งหมายความว่าคำสั่งข้างต้นจะลบรายการที่สองของคอมโบบ็อกซ์

หากต้องการลบรายการโดยใช้ชื่อ คุณควรใช้คุณสมบัติ Items.Remove() ดังที่แสดงด้านล่าง:

ComboBox1.Items.Remove("Female")

โค้ดด้านบนควรลบรายการที่ชื่อ Female ออกจาก ComboBox1.

การเชื่อมโยงแหล่งข้อมูล

คอมโบBox สามารถเติมได้จากชุดข้อมูล พิจารณาแบบสอบถาม SQL ที่ระบุด้านล่าง:

select emp_id, emp_name from employees; 

คุณสามารถสร้างแหล่งข้อมูลในโปรแกรม จากนั้นใช้โค้ดต่อไปนี้เพื่อเชื่อมโยง:

comboBox1.DataSource = ds.Tables(0)
comboBox1.ValueMember = "emp_id"
comboBox1.DisplayMember = "emp_name"

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

เหตุการณ์ SelectedIndexChanged

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

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

ขั้นตอนที่ 1) สร้างใหม่ Windows ใบสมัครแบบฟอร์ม.

ขั้นตอนที่ 2) หลังจากนั้น คุณต้องลากและวางตัวควบคุมคอมโบ้บ็อกซ์สองตัวลงในฟอร์ม

ตัวควบคุมคอมโบว์บ็อกซ์สองตัววางเคียงข้างกันใน VB.Net Windows ฟอร์ม

ขั้นตอน 3) Double คลิกภายในแบบฟอร์มเพื่อเปิดแท็บสำหรับโค้ด ป้อนโค้ดดังต่อไปนี้:

Public Class Form1
    Private Sub Form1_Load(sd As Object, evnt As EventArgs) Handles MyBase.Load

        ComboBox1.Items.Add("Males")

        ComboBox1.Items.Add("Females")

    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged

        ComboBox2.Items.Clear()

        If ComboBox1.SelectedItem = "Males" Then

            ComboBox2.Items.Add("Nicholas")

            ComboBox2.Items.Add("John")

        ElseIf ComboBox1.SelectedItem = "Females" Then

            ComboBox2.Items.Add("Alice")

            ComboBox2.Items.Add("Grace")

        End If
    End Sub
End Class

ขั้นตอนที่ 4) คลิกปุ่ม Start จากแถบด้านบนเพื่อรันโค้ด คุณควรจะได้ผลลัพธ์ดังต่อไปนี้:

คอมโบว์บ็อกซ์แรกจะแสดงค่าเพศชายและเพศหญิงเมื่อโหลดฟอร์ม

ขั้นตอนที่ 5) คลิกปุ่มดรอปดาวน์ในช่องเลือกแรก แล้วเลือก เพศชาย เลื่อนเคอร์เซอร์เมาส์ไปที่ช่องเลือกที่สอง แล้วคลิกปุ่มดรอปดาวน์ของช่องนั้น ดูรายการที่มีให้เลือก:

คอมโบว์บ็อกซ์ที่สองจะแสดง Nicholas และ John หลังจากเลือก Males แล้ว

ขั้นตอนที่ 6) เลื่อนไปยังคอมโบ้บ็อกซ์แรกแล้วเลือก หญิงเลื่อนไปยังช่องเลือกที่สองและดูรายการที่มีอยู่:

คอมโบว์บ็อกซ์ที่สองจะแสดงอลิซและเกรซหลังจากเลือก "เพศหญิง" แล้ว

นี่คือภาพหน้าจอของรหัส:

Code ภาพหน้าจอของตัวจัดการ SelectedIndexChanged ใน VB.Net ที่มีคอมโบ้บ็อกซ์สองตัว

คำอธิบายของ Code:

  1. การสร้างคลาสชื่อ Form1
  2. เริ่มต้นกระบวนการย่อยชื่อ Form1_Load() กระบวนการนี้จะทำงานเมื่อฟอร์มโหลดเสร็จแล้ว ตัวแปร sd As Object อ้างอิงถึงวัตถุที่ทำให้เกิดเหตุการณ์ ในขณะที่ตัวแปร evnt As EventArgs เก็บข้อมูลเหตุการณ์
  3. การเพิ่มรายการ Males ลงใน ComboBox1.
  4. การเพิ่มรายการ Females ลงใน ComboBox1.
  5. จุดสิ้นสุดของขั้นตอนย่อย Form1_Load()
  6. เริ่มต้นขั้นตอนย่อยชื่อ ComboBox1_SelectedIndexChanged() คำสั่งนี้จะถูกเรียกใช้งานเมื่อมีการเลือกไอเท็มบนกล่องรวมข้อมูลแรก ผู้ส่ง As Object จะอ้างอิงถึงอ็อบเจ็กต์ที่ทำให้เกิดเหตุการณ์ในขณะที่ e As EventArgs จะมีข้อมูลเหตุการณ์
  7. ทำคอมโบBoxว่าง 2 รายการ ล้างรายการทั้งหมดจากนั้น
  8. การสร้างเงื่อนไข ตรวจสอบว่ารายการที่เลือกอยู่ใน Combo หรือไม่Box1 เป็นเพศชาย
  9. เพิ่มรายการ Nicholas ลงใน ComboBox2 เมื่อเงื่อนไขข้างต้นเป็นจริง นั่นคือ รายการที่เลือกใน ComboBox1 คือ ชาย.
  10. เพิ่มรายการ John ลงใน ComboBox2 เมื่อเงื่อนไขข้างต้นเป็นจริง นั่นคือ รายการที่เลือกใน ComboBox1 เป็นเพศชาย
  11. การสร้างเงื่อนไข ตรวจสอบว่ารายการที่เลือกอยู่ใน Combo หรือไม่Box1 เป็นผู้หญิง.
  12. เพิ่มรายการ Alice ลงใน ComboBox2 เมื่อเงื่อนไขข้างต้นเป็นจริง นั่นคือ รายการที่เลือกใน ComboBox1 เป็นผู้หญิง.
  13. เพิ่มรายการ Grace ลงใน ComboBox2 เมื่อเงื่อนไขข้างต้นเป็นจริง นั่นคือ รายการที่เลือกใน ComboBox1 เป็นผู้หญิง.
  14. จุดสิ้นสุดของบล็อก If
  15. จุดสิ้นสุดของคอมโบBox1_SelectedIndexChanged() ขั้นตอนย่อย
  16. จบชั้นเรียน แบบที่ 1

คำถามที่พบบ่อย

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

DropDownStyle เลือกลักษณะการทำงาน: DropDown (ค่าเริ่มต้น) อนุญาตให้ผู้ใช้พิมพ์ข้อความได้อย่างอิสระ; DropDownList จำกัดการป้อนข้อมูลเฉพาะรายการที่อยู่ในลิสต์; Simple เปิดให้ลิสต์เปิดอยู่ตลอดเวลา

SelectedIndex จะส่งคืนตำแหน่งแบบนับจากศูนย์ SelectedItem จะส่งคืนอ็อบเจ็กต์ที่ผูกกับแถวนั้น และ Text จะส่งคืนสตริงในช่องแก้ไข รวมถึงข้อความที่ผู้ใช้พิมพ์

คอลคอมโบBox1. ใช้คำสั่ง Items.Clear() เพื่อล้างรายการทั้งหมด และหากต้องการรีเซ็ตข้อความที่แสดงในช่องแก้ไข ให้ใช้คำสั่ง Combo ต่อท้ายBox1. SelectedIndex = -1 หรือตั้งค่า ComboBox1.ข้อความ = สตริงว่างเปล่า

ตั้งค่าคุณสมบัติ DropDownStyle เป็น DropDownList ในหน้าต่าง Properties หรือในโค้ด (Combo)Box1.DropDownStyle = ComboBox(Style.DropDownList) จากนั้นผู้ใช้จะสามารถเลือกได้เฉพาะรายการที่มีอยู่ในรายการเท่านั้น

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

ใช่. นักบิน GitHub แปลงความคิดเห็นภาษาอังกฤษธรรมดาให้เป็นบล็อก SelectedIndexChanged หรือ DataBindings ที่สมบูรณ์ ตรวจสอบโค้ดที่สร้างขึ้นก่อนส่งมอบเสมอping.

ใช่ Visual Studio 2026 จับคู่ Copilot กับ อินเทลลิCode สำหรับการเติมคำอัตโนมัติแบบเต็มบรรทัดโดยคำนึงถึงบริบทของคอมโบBox อสังหาริมทรัพย์และกิจกรรมต่างๆ

สรุปโพสต์นี้ด้วย: