VB.Net ComboBox Styr med EKSEMPEL

⚡ Smart opsummering

ComboBox i VB.Net er en Windows Formularkontrol, der kombinerer en tekstboks med en rulleliste, så brugeren kan vælge et enkelt element eller skrive et enkelt element og dermed spare plads på en formular.

  • 🎯 Formål: Vis en rulleliste, hvor brugeren vælger eller skriver én værdi.
  • Tilføj varer: Udfyld kombinationsfeltet i egenskabsvinduet eller med Items.Add under kørsel.
  • 🔍 Læs udvalg: SelectedItem, SelectedIndex og Text returnerer den værdi, som brugeren har valgt.
  • 🗄️ Bindingsdata: Indstil DataSource, DisplayMember og ValueMember til at indlæse rækker fra et datasæt.
  • 🔔 Registrer ændringer: SelectedIndexChanged-hændelsen udløses, når det valgte element ændres.
  • 🤖 AI-hjælp: GitHub Copilot og Visual Studio IntelliCode Skriv kombinationBox håndterere, mens du skriver.

VB.Net ComboBox kontrol

Hvad er Combobox Control?

Combobox-kontrollen hjælper dig med at vise en rulleliste med mange elementer. Se det som en kombination af en tekstboks, hvor en bruger indtaster tekst, og en rulleliste, hvorfra en bruger vælger et element. Bemærk, at kombinationsboksen viser ét element ad gangen.

Oprettelse af en Combobox

En ComboBox kan oprettes som følger:

Trin 1) Opret en ny applikation.

Trin 2) Træk et kombinationsfelt fra værktøjskassen til formularen.

VB.Net kombinationsbokskontrol fjernet fra værktøjskassen til en Windows Form

Du vil have oprettet en combobox-kontrol.

Tilføjelse af elementer til Combobox

Nu hvor vi har oprettet en kombinationsboks, lad os demonstrere, hvordan man tilføjer elementer til den.

Double klik på det combobox-kontrolelement, du har tilføjet. Du vil blive flyttet fra designfanen til fanen med kode.

For at tilføje et element til en kombinationsboks-kontrol, bruger vi egenskaben Items. Lad os demonstrere dette ved at tilføje to elementer til kombinationsboksen, Mand og Kvinde:

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

Vi kan også vælge at tilføje elementer til kombinationsboksen på designtidspunktet fra vinduet Egenskaber. Her er trinene:

Trin 1) Åbn fanen Design, og klik på kombinationsfeltet.

Trin 2) Gå til vinduet Egenskaber, og se indstillingen Elementer.

Trin 3) Klik på …, der er placeret til højre for (Samling).

Tilføjelse af elementer til en VB.Net-kombinationsboks i kode med Items.Add-metoden

Vinduet VB.Net Egenskaber åbner kombinationsfeltet Elementer Samlingseditor

Trin 4) Du vil se et nyt vindue. Det er her, du skal tilføje elementer til kombinationsfeltet, som vist nedenfor:

String Collection Editor viser mandlige og kvindelige kombinationsfelter

Trin 5) Når du er færdig med typing elementerne, klik på knappen OK.

Trin 6) Klik på Start-knappen i den øverste værktøjslinje, og klik på rullemenuikonet i kombinationsfeltet.

VB.Net-kombinationsboksen viser Mand valgt som standardelement under kørsel

Elementerne blev føjet til combobox-kontrolelementet.

Valg af Combobox-elementer

Du skal muligvis indstille standardelementet, der skal vælges, når formularen indlæses. Du kan opnå dette via metoden SelectedItem(). For at indstille det standardvalgte køn til Mand, kan du f.eks. bruge følgende sætning:

ComboBox1.SelectedItem = "Male"

Når du kører koden, skal combobox-kontrollen være som vist nedenfor:

VB.Net-formular viser kombinationsfeltet med mandlige og kvindelige muligheder

Henter Combobox-værdier

Du kan hente det valgte element fra din kombinationsboks. Dette kan gøres ved hjælp af tekstegenskaben. Lad os demonstrere dette ved hjælp af ovenstående kombinationsboks med to elementer, nemlig Mand og Kvinde. Følg nedenstående trin:

Trin 1) Double Klik på kombinationsfeltet for at åbne fanen med VB.Net-kode.

Trin 2) Tilføj 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

Trin 3) Klik på Start-knappen i værktøjslinjen for at udføre koden. Du bør få følgende formular:

Code Skærmbillede af VB.Net-kombinationsfeltet SelectedIndexChanged-hændelseshandler

Trin 4) Klik på rullemenuen, og vælg dit køn. I mit tilfælde vælger jeg Mand, og jeg får følgende:

VB.Net-meddelelsesboks, der viser teksten for det valgte kombinationsfeltelement, Mand

Her er et skærmbillede af koden:

Forklaring af Code:

  1. Oprettelse af en klasse ved navn Form1. Klassen vil være offentlig tilgængelig, da dens adgangsmodifikator er blevet indstillet til Offentlig.
  2. Start af en underprocedure med navnet ComboBox1_SelectedIndexChanged. Dette genereres automatisk, når du dobbeltklikker på kombinationsfeltets kontrolelement fra fanen Design. Denne underprocedure vil blive kaldt, når du vælger et element fra kombinationsfeltet. sd As Object refererer til det objekt, der udløste hændelsen, mens evnt As EventArgs indeholder hændelsesdataene.
  3. Opretter en strengvariabel med navnet var_gender.
  4. Indstilling af værdien af ​​variabel var_gender til det element, der er valgt i kombinationsboksen.
  5. Udskrivning af værdien af ​​variablen var_gender i en beskedBox.
  6. Slut på ComboBox1_SelectedIndexChanged underprocedure.
  7. Slutningen af ​​Form1-klassen.

Fjernelse af Combobox-elementer

Det er muligt for dig at fjerne et element fra din kombinationsboks. Der er to måder, hvorpå du kan opnå dette. Du kan bruge enten vareindekset eller navnet på varen.

Når du bruger elementindekset, skal du bruge egenskaben Items.RemoveAt() som vist nedenfor:

ComboBox1.Items.RemoveAt(1)

I ovenstående eksempel fjerner vi elementet placeret i indeks 1 i kombinationsboksen. Bemærk, at combobox-indekser begynder ved indeks 0, hvilket betyder, at ovenstående kommando vil fjerne det andet element i combobox.

For at fjerne elementet med dets navn, skal du bruge egenskaben Items.Remove() som vist nedenfor:

ComboBox1.Items.Remove("Female")

Ovenstående kode bør fjerne elementet med navnet Female fra ComboBox1.

Bindende datakilde

En ComboBox kan udfyldes fra et datasæt. Overvej SQL-forespørgslen nedenfor:

select emp_id, emp_name from employees; 

Du kan oprette en datakilde i et program og derefter bruge følgende kode til at binde den:

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

Dette vil give dig en nem måde at udfylde din combobox-kontrol med data uden at skulle indtaste hvert enkelt element.

SelectedIndexChanged hændelse

Du vil ofte ønske, at dit program reagerer i det øjeblik, brugeren vælger en ny værdi.

Denne type begivenhed påkaldes, når du ændrer det valgte element på din kombinationsboks. Det er den begivenhed, du skal bruge, når du skal implementere en handling ved en ændring på det valgte element i en kombinationsboks. Lad os demonstrere dette ved at bruge et eksempel:

Trin 1) Opret en ny Windows Ansøgning om formularer.

Trin 2) Derefter skal du trække og slippe to kombinationsbokskontroller ind i formularen.

To kombinationsbokskontroller placeret side om side på et VB.Net Windows Form

Trin 3) Double klik inde i formularen for at åbne fanen for kode. Indtast 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

Trin 4) Klik på Start-knappen i den øverste bjælke for at køre koden. Du burde få følgende output:

Første kombinationsboks udfyldt med mænd og kvinder ved Form_Load

Trin 5) Klik på rullemenuen i den første kombinationsboks, og vælg Mand. Flyt musemarkøren til den anden kombinationsboks, og klik på rullemenuen. Se de tilgængelige elementer:

Anden kombinationsboks, der viser Nicholas og John efter at Mænd er valgt

Trin 6) Gå til den første kombinationsboks og vælg KvindeGå til den anden kombinationsboks og se de tilgængelige elementer:

Anden kombinationsboks, der viser Alice og Grace efter at kvinder er valgt

Her er et skærmbillede af koden:

Code Skærmbillede af VB.Net SelectedIndexChanged-handleren med to kombinationsbokse

Forklaring af Code:

  1. Oprettelse af en klasse ved navn Form1.
  2. Start af en underprocedure med navnet Form1_Load(). Denne vil blive udløst, når formularen er indlæst. sd As Object refererer til det objekt, der udløste hændelsen, mens evnt As EventArgs indeholder hændelsesdataene.
  3. Tilføjelse af emnet Hanner til kombinationenBox1.
  4. Tilføjelse af emnet Kvinder til kombinationenBox1.
  5. Slut på Form1_Load()-underproceduren.
  6. Start af en underprocedure ved navn ComboBox1_SelectedIndexChanged(). Dette vil blive aktiveret, når et element er valgt i den første kombinationsboks. Afsenderen As Object refererer til det objekt, der rejste hændelsen, mens e As EventArgs har hændelsesdataene.
  7. Lav ComboBox2 tomme, ryd alle elementer fra den.
  8. Oprettelse af en betingelse. Kontrollerer, om det valgte element er på ComboBox1 er hanner.
  9. Tilføj elementet Nicholas til kombinationenBox2, når ovenstående betingelse er sand, dvs. element valgt på ComboBox1 er mand.
  10. Tilføj elementet John til kombinationenBox2, når ovenstående betingelse er sand, dvs. element valgt på ComboBox1 er hanner.
  11. Oprettelse af en betingelse. Kontrollerer, om det valgte element er på ComboBox1 er hunner.
  12. Tilføj elementet Alice til ComboBox2, når ovenstående betingelse er sand, dvs. element valgt på ComboBox1 er hunner.
  13. Tilføj elementet Grace til ComboBox2, når ovenstående betingelse er sand, dvs. element valgt på ComboBox1 er hunner.
  14. Slut på If-blokken.
  15. Slut på ComboBox1_SelectedIndexChanged() underprocedure.
  16. Slut på klassen Form1.

Ofte Stillede Spørgsmål

En ComboBox sparer plads ved at skjule listen, indtil der klikkes på pilen, og den kan acceptere indtastet input. En listeBox viser alle elementer på én gang og tillader kun valg.

DropDownStyle vælger funktionsmåden: DropDown (standard) lader brugeren skrive fri tekst; DropDownList begrænser input til elementer på listen; Simple holder listen åben hele tiden.

SelectedIndex returnerer den nulbaserede position, SelectedItem returnerer objektet, der er bundet til den pågældende række, og Text returnerer strengen i redigeringsfeltet, inklusive tekst, som brugeren skrev.

OpkaldskombinationBox1.Items.Clear() for at tømme listen. For også at nulstille teksten vist i redigeringsfeltet, følg op med ComboBox1.SelectedIndex = -1 eller sæt ComboBox1.Tekst = String.Tom.

Indstil egenskaben DropDownStyle til DropDownList i egenskabsvinduet eller i koden (ComboBox1.DropDownStyle = KombinationBoxBrugeren kan derefter kun vælge elementer, der allerede er på listen.

TextChanged aktiveres, mens brugeren redigerer tekstboksdelen. SelectedIndexChanged aktiveres kun, når det fremhævede element i rullelisten ændres, uanset om det er med mus, tastatur eller kode.

Ja. GitHub Copilot konverterer en kommentar på almindeligt engelsk til en fuld SelectedIndexChanged- eller DataBindings-blok. Gennemgå altid den genererede kode før afsendelseping.

Ja. Visual Studio 2026 parrer Copilot med IntelliCode til hellinjede, kontekstbevidste fuldførelser af ComboBox ejendomme og begivenheder.

Opsummer dette indlæg med: