Combo VB.NetBox Controlați cu EXEMPLU

⚡ Rezumat inteligent

ComboBox în VB.Net este un Windows Control Formular care combină o casetă text cu o listă derulantă, permițând utilizatorului să aleagă un singur element sau să tasteze unul, economisind spațiu într-un formular.

  • 🎯 Scop: Afișează o listă derulantă în care utilizatorul selectează sau introduce o valoare.
  • Adăugați articole: Populați caseta combinată din fereastra Proprietăți sau cu Items.Add la momentul execuției.
  • 🔍 Citește selecția: SelectedItem, SelectedIndex și Text returnează valoarea aleasă de utilizator.
  • 🗄️ Date de legare: Setați DataSource, DisplayMember și ValueMember pentru a încărca rânduri dintr-un set de date.
  • 🔔 Detectează modificări: Evenimentul SelectedIndexChanged se declanșează de fiecare dată când elementul ales se modifică.
  • 🤖 Ajutor AI: GitHub Copilot și Visual Studio IntelliCode scrieți o combinațieBox gestionatoare pe măsură ce tastați.

Combo VB.NetBox Mod de control:

Ce este Combobox Control?

Controlul casetei combinate vă ajută să afișați o listă derulantă cu multe elemente. Vedeți-l ca o combinație între o casetă de text în care un utilizator introduce text și o listă derulantă din care un utilizator selectează un articol. Rețineți că caseta combinată arată câte un articol.

Crearea unei casete combinate

Un ComboBox poate fi creat astfel:

Pasul 1) Creați o aplicație nouă.

Pasul 2) Trageți un control combobox din caseta de instrumente în formular.

Controlul combobox VB.Net a fost eliminat din caseta de instrumente într-un Windows Formă

Veți fi creat un control combobox.

Adăugarea de articole în Combobox

Acum că am creat o casetă combinată, haideți să demonstrăm cum să adăugați elemente la ea.

Double faceți clic pe controlul casetei combinate pe care ați adăugat-o. Veți fi mutat din fila design în fila cu cod.

Pentru a adăuga un articol la un control combobox, folosim proprietatea Items. Să demonstrăm acest lucru adăugând două elemente în caseta combinată, Masculin și Femeie:

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

De asemenea, putem alege să adăugăm elemente în caseta combinată în timpul proiectării din fereastra Proprietăți. Iată pașii:

Pasul 1) Deschideți fila Design și faceți clic pe controlul combobox.

Pasul 2) Accesați fereastra Proprietăți și vizualizați opțiunea Elemente.

Pasul 3) Faceți clic pe … situat în dreapta (Colecției).

Adăugarea de elemente la o casetă combinată VB.Net în cod cu metoda Items.Add

Fereastra Proprietăți VB.Net care deschide editorul de colecții de elemente din caseta combinată

Pasul 4) Veți vedea o fereastră nouă. Aici ar trebui să adăugați elemente în caseta combinată, așa cum se arată mai jos:

Editor de colecții de șiruri de caractere care listează elementele din caseta combinată Masculină și Feminină

Pasul 5) După ce ați terminat cu typing elementele, faceți clic pe butonul OK.

Pasul 6) Faceți clic pe butonul Start din bara de instrumente superioară și faceți clic pe pictograma derulantă din caseta combinată.

Caseta combinată VB.Net care afișează Masculin selectat ca element implicit la momentul execuției

Elementele au fost adăugate cu succes la controlul casetei combinate.

Selectarea articolelor din caseta combinată

Poate fi necesar să setați elementul implicit care va fi selectat atunci când formularul este încărcat. Puteți realiza acest lucru prin metoda SelectedItem(). De exemplu, pentru a seta sexul selectat implicit la Masculin, puteți utiliza următoarea afirmație:

ComboBox1.SelectedItem = "Male"

Când rulați codul, controlul casetei combinate ar trebui să fie așa cum se arată mai jos:

Formular VB.Net care afișează caseta combinată cu opțiunile Masculin și Feminin

Preluarea valorilor casetei combinate

Puteți obține elementul selectat din caseta combinată. Acest lucru se poate face folosind proprietatea text. Să demonstrăm acest lucru folosind caseta combinată de mai sus cu două elemente, și anume Masculin și Feminin. Urmați pașii de mai jos:

Pas 1) Double Faceți clic pe caseta combinată pentru a deschide fila cu cod VB.Net.

Pasul 2) Adăugați următorul cod:

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

Pasul 3) Faceți clic pe butonul Start din bara de instrumente pentru a executa codul. Ar trebui să obțineți următorul formular:

Code captură de ecran a gestionarului de evenimente SelectedIndexChanged din caseta combinată VB.Net

Pasul 4) Faceți clic pe butonul derulant și alegeți sexul. În cazul meu, aleg Masculin și primesc următoarele:

Caseta de mesaj VB.Net care afișează textul elementului selectat din caseta combinată (Masculin)

Iată o captură de ecran a codului:

Explicația de Code:

  1. Crearea unei clase numite Form1. Clasa va fi accesibilă public, deoarece modificatorul său de acces a fost setat la Public.
  2. Pornirea unei subproceduri numite ComboBox1_SelectedIndexChanged. Aceasta este generată automat când faceți dublu clic pe controlul combobox din fila design. Această subprocedură va fi invocată atunci când selectați un element din combobox. Obiectul sd As face referire la obiectul care a generat evenimentul, în timp ce evnt As EventArgs conține datele evenimentului.
  3. Crearea unei variabile de tip String numită var_gender.
  4. Setarea valorii variabilei var_gender la elementul care este selectat în caseta combinată.
  5. Afișarea valorii variabilei var_gender într-un mesajBox.
  6. Sfârșitul Combo-uluiBox1_SelectedIndexChanged subprocedură.
  7. Sfârșitul clasei Form1.

Eliminarea elementelor din caseta combinată

Este posibil să eliminați un articol din caseta dvs. combinată. Există două moduri prin care puteți realiza acest lucru. Puteți utiliza fie indexul articolului, fie numele articolului.

Când utilizați indexul articolului, ar trebui să utilizați proprietatea Items.RemoveAt() așa cum se arată mai jos:

ComboBox1.Items.RemoveAt(1)

În exemplul de mai sus, eliminăm elementul situat la indexul 1 al casetei combinate. Rețineți că indexurile casetei combinate încep la indexul 0, ceea ce înseamnă că comanda de mai sus va elimina al doilea element al casetei combinate.

Pentru a elimina elementul folosind numele său, ar trebui să utilizați proprietatea Items.Remove() după cum se arată mai jos:

ComboBox1.Items.Remove("Female")

Codul de mai sus ar trebui să elimine elementul numit Femeie din ComboBox1.

Legarea sursei de date

Un ComboBox poate fi populat dintr-un set de date. Luați în considerare interogarea SQL dată mai jos:

select emp_id, emp_name from employees; 

Puteți crea o sursă de date într-un program, apoi utilizați următorul cod pentru a o lega:

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

Acest lucru vă va oferi o modalitate ușoară de a completa controlul casetei combinate cu date fără a fi nevoie să tastați fiecare articol individual.

Eveniment SelectedIndexChanged

Adesea veți dori ca programul dvs. să reacționeze în momentul în care utilizatorul alege o nouă valoare.

Acest tip de eveniment este invocat atunci când modificați elementul selectat în caseta dvs. combinată. Este evenimentul pe care ar trebui să-l utilizați atunci când trebuie să implementați o acțiune la o modificare a articolului selectat dintr-o casetă combinată. Să demonstrăm acest lucru folosind un exemplu:

Pasul 1) Creați un nou Windows Formulare de cerere.

Pasul 2) După aceea, trebuie să glisați și să plasați două controale combobox în formular.

Două controale combobox plasate una lângă alta pe un VB.Net Windows Formă

Pas 3) Double faceți clic în interiorul formularului pentru a deschide fila pentru cod. Introdu următorul cod:

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

Pasul 4) Faceți clic pe butonul Start din bara de sus pentru a rula codul. Ar trebui să obțineți următorul rezultat:

Prima casetă combinată populată cu bărbați și femei la Form_Load

Pasul 5) Faceți clic pe butonul derulant din prima casetă combinată și alegeți Masculin. Mutați cursorul mouse-ului în a doua casetă combinată și faceți clic pe butonul derulant corespunzător. Vedeți elementele disponibile:

A doua casetă combinată care îi prezintă pe Nicholas și John după ce este selectat Males

Pasul 6) Treceți la prima casetă combinată și alegeți FemeieTreceți la a doua casetă combinată și vedeți elementele disponibile:

A doua casetă combinată care le prezintă pe Alice și Grace după ce sunt selectate femelele

Iată o captură de ecran a codului:

Code captură de ecran a handlerului VB.Net SelectedIndexChanged cu două casete combinate

Explicația de Code:

  1. Crearea unei clase numite Form1.
  2. Începutul unei subproceduri numite Form1_Load(). Aceasta va fi declanșată odată ce formularul este încărcat. Obiectul sd As face referire la obiectul care a generat evenimentul, în timp ce obiectul event As EventArgs conține datele evenimentului.
  3. Adăugarea articolului Masculi la ComboBox1.
  4. Adăugarea articolului Femele la ComboBox1.
  5. Sfârșitul sub-procedurii Form1_Load().
  6. Începutul unei sub-proceduri numită ComboBox1_SelectedIndexChanged(). Acesta va fi invocat atunci când un articol este selectat în prima casetă combinată. Expeditorul ca obiect face referire la obiectul care a generat evenimentul în timp ce e As EventArgs are datele evenimentului.
  7. Faceți ComboBox2 gol, șterge toate elementele din el.
  8. Crearea unei condiții. Verificați dacă elementul selectat în ComboBox1 este bărbați.
  9. Adăugați articolul Nicholas la ComboBox2 când condiția de mai sus este adevărată, adică elementul selectat în ComboBox1 este bărbat.
  10. Adăugați articolul John la ComboBox2 când condiția de mai sus este adevărată, adică elementul selectat în ComboBox1 este bărbați.
  11. Crearea unei condiții. Verificați dacă elementul selectat în ComboBox1 este Femeile.
  12. Adăugați articolul Alice în ComboBox2 când condiția de mai sus este adevărată, adică elementul selectat în ComboBox1 este Femeile.
  13. Adăugați elementul Grace la ComboBox2 când condiția de mai sus este adevărată, adică elementul selectat în ComboBox1 este Femeile.
  14. Sfârșitul blocului If.
  15. Sfârșitul Combo-uluiBox1_SelectedIndexChanged() subprocedură.
  16. Sfârșitul clasei Form1.

Întrebări frecvente

Un ComboBox economisește spațiu ascunzând lista până când se face clic pe săgeată și poate accepta date de intrare. O listăBox afișează toate elementele simultan și permite doar selecția.

DropDownStyle alege comportamentul: DropDown (implicit) permite utilizatorului să tasteze text liber; DropDownList restricționează introducerea de text la elementele din listă; Simple menține lista deschisă în permanență.

SelectedIndex returnează poziția cu bază zero, SelectedItem returnează obiectul legat de rândul respectiv, iar Text returnează șirul de caractere din caseta de editare, inclusiv textul tastat de utilizator.

Apel combinatBox1.Items.Clear() pentru a goli lista. Pentru a reseta și textul afișat în caseta de editare, urmați-l cu Combo.Box1.SelectedIndex = -1 sau setează ComboBox1.Text = String.Empty.

Setați proprietatea DropDownStyle la DropDownList în fereastra Proprietăți sau în cod (ComboBox1.DropDownStyle = CombinațieBoxStyle.DropDownList). Utilizatorul poate apoi selecta doar elementele deja existente în listă.

TextChanged se declanșează în timp ce utilizatorul editează porțiunea casetei de text. SelectedIndexChanged se declanșează numai atunci când elementul evidențiat din lista derulantă se modifică, fie prin intermediul mouse-ului, al tastaturii sau al codului.

Da. Copilotul GitHub convertește un comentariu în limba engleză simplă într-un bloc complet SelectedIndexChanged sau DataBindings. Revizuiți întotdeauna codul generat înainte de livrare.ping.

Da. Visual Studio 2026 împerechează Copilot cu inteliCode pentru completări de linie întreagă, contextuale, ale lui ComboBox proprietăți și evenimente.

Rezumați această postare cu: