VB.Net ComboBox Kontroller med EKSEMPEL

โšก Smart oppsummering

ComboBox i VB.Net er en Windows Skjemakontroll som kombinerer en tekstboks med en rullegardinliste, slik at brukeren kan velge et enkelt element eller skrive inn et, og dermed spare plass pรฅ skjemaet.

  • ๐ŸŽฏ Formรฅl: Vis en rullegardinliste der brukeren velger eller skriver inn รฉn verdi.
  • โž• Legg til elementer: Fyll ut kombinasjonsboksen i Egenskaper-vinduet eller med Items.Add under kjรธring.
  • ๐Ÿ” Les utvalg: SelectedItem, SelectedIndex og Text returnerer verdien som er valgt av brukeren.
  • ๐Ÿ—„๏ธ Bindingsdata: Angi DataSource, DisplayMember og ValueMember for รฅ laste inn rader fra et datasett.
  • ๐Ÿ”” Oppdag endringer: SelectedIndexChanged-hendelsen utlรธses hver gang det valgte elementet endres.
  • ๐Ÿค– AI-hjelp: GitHub Copilot og Visual Studio IntelliCode skriv kombinasjonBox behandlere mens du skriver.

VB.Net ComboBox Kontroll:

Hva er Combobox Control?

Combobox-kontrollen hjelper deg รฅ vise en rullegardinliste med mange elementer. Se det som en kombinasjon av en tekstboks der en bruker skriver inn tekst og en rullegardinliste der en bruker velger et element. Merk at kombinasjonsboksen viser ett element om gangen.

Opprette en kombinasjonsboks

En komboBox kan lages som fรธlger:

Trinn 1) Opprett en ny applikasjon.

Trinn 2) Dra en kombinasjonsbokskontroll fra verktรธykassen til skjemaet.

VB.Net-kombinasjonsbokskontrollen ble droppet fra verktรธykassen til en Windows Form

Du vil ha opprettet en kombinasjonsbokskontroll.

Legge til elementer i kombinasjonsboksen

Nรฅ som vi har laget en kombinasjonsboks, la oss demonstrere hvordan du legger til elementer i den.

Double klikk pรฅ kombinasjonsbokskontrollen du har lagt til. Du flyttes fra designfanen til fanen med kode.

For รฅ legge til et element i en kombinasjonsbokskontroll bruker vi egenskapen Items. La oss demonstrere dette ved รฅ legge til to elementer i kombinasjonsboksen, mann og kvinne:

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

Vi kan ogsรฅ velge รฅ legge til elementer i kombinasjonsboksen ved utforming fra vinduet Egenskaper. Her er trinnene:

Trinn 1) ร…pne designfanen og klikk pรฅ kombinasjonsbokskontrollen.

Trinn 2) Gรฅ til Egenskaper-vinduet og se alternativet Elementer.

Trinn 3) Klikk pรฅ โ€ฆ som ligger til hรธyre for (Samling).

Legge til elementer i en VB.Net-kombinasjonsboks i kode med Items.Add-metoden

VB.Net Egenskaper-vindu som รฅpner kombinasjonsboksen Elementer Samlingsredigeringsprogram

Trinn 4) Du vil se et nytt vindu. Det er her du skal legge til elementer i kombinasjonsboksen, som vist nedenfor:

String Collection Editor viser mannlige og kvinnelige kombinasjonsbokselementer

Trinn 5) Nรฅr du er ferdig med typing elementene, klikk pรฅ OK-knappen.

Trinn 6) Klikk pรฅ Start-knappen รธverst i verktรธylinjen, og klikk pรฅ rullegardinikonet i kombinasjonsboksen.

VB.Net-kombinasjonsboksen som viser Mann valgt som standardelement under kjรธretid

Elementene ble lagt til i kombinasjonsbokskontrollen.

Velge Combobox-elementer

Du mรฅ kanskje angi standardelementet som skal velges nรฅr skjemaet lastes inn. Du kan oppnรฅ dette via SelectedItem()-metoden. For eksempel, for รฅ sette standard valgt kjรธnn til Mann, kan du bruke fรธlgende setning:

ComboBox1.SelectedItem = "Male"

Nรฅr du kjรธrer koden, skal kombinasjonsbokskontrollen vรฆre som vist nedenfor:

VB.Net-skjema som viser kombinasjonsboksen med alternativer for mann og kvinne

Henter Combobox-verdier

Du kan hente det valgte elementet fra kombinasjonsboksen din. Dette kan gjรธres ved hjelp av tekstegenskapen. La oss demonstrere dette ved hjelp av kombinasjonsboksen ovenfor med to elementer, det vil si Mann og Kvinne. Fรธlg trinnene nedenfor:

Trinn 1) Double Klikk pรฅ kombinasjonsboksen for รฅ รฅpne fanen med VB.Net-kode.

Trinn 2) Legg til fรธlgende kode:

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

Trinn 3) Klikk pรฅ Start-knappen fra verktรธylinjen for รฅ kjรธre koden. Du skal fรฅ fรธlgende skjema:

Code skjermbilde av VB.Net-kombinasjonsboksen SelectedIndexChanged-hendelseshรฅndterer

Trinn 4) Klikk pรฅ rullegardinmenyen og velg kjรธnn. I mitt tilfelle velger jeg Mann, og jeg fรฅr fรธlgende:

VB.Net-meldingsboks som viser den valgte kombinasjonsboksteksten Mann

Her er et skjermbilde av koden:

Forklaring til Code:

  1. Opprette en klasse kalt Form1. Klassen vil vรฆre offentlig tilgjengelig siden tilgangsmodifikatoren er satt til Offentlig.
  2. Starte en delprosedyre kalt ComboBox1_SelectedIndexChanged. Dette genereres automatisk nรฅr du dobbeltklikker pรฅ kombinasjonsbokskontrollen fra designfanen. Denne underprosedyren vil bli kalt nรฅr du velger et element fra kombinasjonsboksen. sd As Object refererer til objektet som utlรธste hendelsen, mens evnt As EventArgs inneholder hendelsesdataene.
  3. Oppretter en strengvariabel med navnet var_gender.
  4. Sette verdien av variabelen var_kjรธnn til elementet som er valgt i kombinasjonsboksen.
  5. Skrive ut verdien til variabelen var_gender i en meldingBox.
  6. Slutt pรฅ kombinasjonenBox1_SelectedIndexChanged underprosedyre.
  7. Slutt pรฅ Form1-klassen.

Fjerne Combobox-elementer

Det er mulig for deg รฅ fjerne et element fra kombinasjonsboksen. Det er to mรฅter du kan oppnรฅ dette pรฅ. Du kan bruke enten vareindeksen eller navnet pรฅ varen.

Nรฅr du bruker elementindeksen, bรธr du bruke egenskapen Items.RemoveAt() som vist nedenfor:

ComboBox1.Items.RemoveAt(1)

I eksemplet ovenfor fjerner vi elementet i indeks 1 i kombinasjonsboksen. Merk at kombinasjonsboksindekser begynner pรฅ indeks 0, noe som betyr at kommandoen ovenfor vil fjerne det andre elementet i kombinasjonsboksen.

For รฅ fjerne elementet ved รฅ bruke navnet, bรธr du bruke egenskapen Items.Remove() som vist nedenfor:

ComboBox1.Items.Remove("Female")

Koden ovenfor bรธr fjerne elementet som heter Female fra kombinasjonenBox1.

Bindende datakilde

En komboBox kan fylles ut fra et datasett. Tenk pรฅ SQL-spรธrringen nedenfor:

select emp_id, emp_name from employees; 

Du kan opprette en datakilde i et program og deretter bruke fรธlgende kode for รฅ binde den:

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

Dette vil gi deg en enkel mรฅte รฅ fylle kombinasjonsbokskontrollen din med data uten รฅ mรฅtte skrive inn hvert enkelt element.

SelectedIndexChanged hendelse

Du vil ofte at programmet ditt skal reagere i det รธyeblikket brukeren velger en ny verdi.

Denne typen hendelse pรฅkalles nรฅr du endrer det valgte elementet pรฅ kombinasjonsboksen. Det er hendelsen du bรธr bruke nรฅr du trenger รฅ implementere en handling ved en endring pรฅ det valgte elementet i en kombinasjonsboks. La oss demonstrere dette ved รฅ bruke et eksempel:

Trinn 1) Opprett en ny Windows Skjemasรธknad.

Trinn 2) Deretter mรฅ du dra og slippe to kombinasjonsbokskontroller inn i skjemaet.

To kombinasjonsbokskontroller plassert side om side pรฅ et VB.Net Windows Form

Trinn 3) Double klikk inne i skjemaet for รฅ รฅpne fanen for kode. Skriv inn fรธlgende kode:

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

Trinn 4) Klikk pรฅ Start-knappen i den รธverste linjen for รฅ kjรธre koden. Du bรธr fรฅ fรธlgende resultat:

Fรธrste kombinasjonsboks fylt med menn og kvinner ved Form_Load

Trinn 5) Klikk pรฅ rullegardinknappen i den fรธrste kombinasjonsboksen og velg Mann. Flytt musepekeren til den andre kombinasjonsboksen og klikk pรฅ rullegardinknappen. Se de tilgjengelige elementene:

Andre kombinasjonsboks som viser Nikolaus og Johannes etter at menn er valgt

Trinn 6) Gรฅ til den fรธrste kombinasjonsboksen og velg HunnGรฅ til den andre kombinasjonsboksen og se de tilgjengelige elementene:

Den andre kombinasjonsboksen som viser Alice og Grace etter at Kvinner er valgt

Her er et skjermbilde av koden:

Code skjermbilde av VB.Net SelectedIndexChanged-hรฅndtereren med to kombinasjonsbokser

Forklaring til Code:

  1. Opprette en klasse kalt Form1.
  2. Start av en delprosedyre kalt Form1_Load(). Denne vil bli utlรธst nรฅr skjemaet er lastet inn. sd As Object refererer til objektet som utlรธste hendelsen, mens evnt As EventArgs inneholder hendelsesdataene.
  3. Legge til elementet Hanner til kombinasjonenBox1.
  4. Legge til elementet kvinner til kombinasjonenBox1.
  5. Slutt pรฅ Form1_Load()-underprosedyren.
  6. Start av en underprosedyre kalt ComboBox1_SelectedIndexChanged(). Dette vil bli pรฅkalt nรฅr et element er valgt i den fรธrste kombinasjonsboksen. Avsenderen som objekt refererer til objektet som utlรธste hendelsen mens e As EventArgs har hendelsesdataene.
  7. Lag ComboBox2 tomme, fjern alle elementer fra den.
  8. Opprette en tilstand. Sjekker om det valgte elementet er pรฅ ComboBox1 er hanner.
  9. Legg elementet Nicholas til kombinasjonenBox2 nรฅr betingelsen ovenfor er sann, det vil si element valgt pรฅ ComboBox1 er mann.
  10. Legg elementet John til kombinasjonenBox2 nรฅr betingelsen ovenfor er sann, det vil si element valgt pรฅ ComboBox1 er hanner.
  11. Opprette en tilstand. Sjekker om det valgte elementet er pรฅ ComboBox1 er kvinner.
  12. Legg til elementet Alice i kombinasjonenBox2 nรฅr betingelsen ovenfor er sann, det vil si element valgt pรฅ ComboBox1 er kvinner.
  13. Legg til elementet Grace til kombinasjonenBox2 nรฅr betingelsen ovenfor er sann, det vil si element valgt pรฅ ComboBox1 er kvinner.
  14. Slutten av If-blokken.
  15. Slutt pรฅ kombinasjonenBox1_SelectedIndexChanged() underprosedyre.
  16. Slutt pรฅ klassen Skjema1.

Spรธrsmรฅl og svar

En komboBox sparer plass ved รฅ skjule listen til pilen klikkes og kan godta skrevet inndata. En listeBox viser alle elementene samtidig og tillater bare valg.

DropDownStyle velger oppfรธrselen: DropDown (standard) lar brukeren skrive fritekst; DropDownList begrenser inndata til elementer i listen; Simple holder listen รฅpen til enhver tid.

SelectedIndex returnerer den nullbaserte posisjonen, SelectedItem returnerer objektet som er bundet til den raden, og Text returnerer strengen i redigeringsboksen, inkludert teksten brukeren skrev inn.

AnropskombinasjonBox1.Items.Clear() for รฅ tรธmme listen. For รฅ ogsรฅ tilbakestille teksten som vises i redigeringsboksen, fรธlg opp med ComboBox1.SelectedIndex = -1 eller sett ComboBox1.Tekst = String.Tom.

Sett DropDownStyle-egenskapen til DropDownList i Egenskaper-vinduet eller i koden (ComboBox1.Rullefeltstil = KombinasjonBoxBrukeren kan da bare velge elementer som allerede er i listen.

TextChanged utlรธses mens brukeren redigerer tekstboksdelen. SelectedIndexChanged utlรธses bare nรฅr det uthevede elementet i rullegardinlisten endres, enten med mus, tastatur eller kode.

Ja. GitHub Copilot konverterer en kommentar i vanlig engelsk til en fullstendig SelectedIndexChanged- eller DataBindings-blokk. Se alltid gjennom den genererte koden fรธr sending.ping.

Ja. Visual Studio 2026 kobler Copilot med intelliCode for hellinjede, kontekstbevisste fullfรธringer av ComboBox eiendommer og hendelser.

Oppsummer dette innlegget med: