VB.Net ComboBox Kontroller med EKSEMPEL

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.

Opprette en kombinasjonsboks

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 design-fanen og klikk på kombinasjonsbokskontrollen.

Trinn 2) Flytt til vinduet Egenskaper og se alternativet Elementer.

Trinn 3) Klikk på … plassert til høyre for (Samling).

Legge til elementer i kombinasjonsboksen

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

Legge til elementer i kombinasjonsboksen

Trinn 5) Når du er ferdig med å skrive inn elementene, klikker du på OK-knappen.

Trinn 6) Klikk på Start-knappen fra den øverste verktøylinjen og klikk på rullegardinikonet på kombinasjonsboksen.

Legge til elementer i kombinasjonsboksen

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:

Velge Combobox-elementer

Henter Combobox-verdier

Du kan hente det valgte elementet fra kombinasjonsboksen. Dette kan gjøres ved å bruke tekstegenskapen. La oss demonstrere dette ved å bruke kombinasjonsboksen ovenfor med to elementer, nemlig 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 å utføre koden. Du bør få følgende skjema:

Henter Combobox-verdier

Trinn 4) Klikk på rullegardinknappen og velg kjønn. I mitt tilfelle. Jeg velger Mann, og jeg får følgende:

Henter Combobox-verdier

Her er et skjermbilde av koden:

Henter Combobox-verdier

Forklaring av kode:

  1. Opprette en klasse kalt Form1. Klassen vil være offentlig tilgjengelig siden tilgangsmodifikatoren er satt til Offentlig.
  2. Start av en underprosedyre kalt ComboBox1_SelectedIndexChanged. Dette genereres automatisk når du dobbeltklikker på kombinasjonsbokskontrollen fra designfanen. Denne underprosedyren vil bli påkalt når du velger et element fra kombinasjonsboksen. sd As Object refererer til objektet som utløste hendelsen mens hendelsen As EventArgs har hendelsesdataene.
  3. Opprette et strengheltall kalt var_gender.
  4. Sette verdien av variabelen var_kjønn til elementet som er valgt i kombinasjonsboksen.
  5. Skrive ut verdien av variabelen var_gender på 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

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 Window Forms-applikasjon.

Trinn 2) Etter det må du Dra og slipp to kombinasjonsbokskontroller inn i skjemaet.

SelectedIndexChanged hendelse

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 fra den øverste linjen for å kjøre koden. Du bør få følgende utgang:

SelectedIndexChanged hendelse

Trinn 5) Klikk på rullegardinknappen på den første kombinasjonsboksen og velg Mann. Flytt musepekeren til den andre kombinasjonsboksen og klikk på rullegardinknappen. Se tilgjengelige varer:

SelectedIndexChanged hendelse

Trinn 6) Flytt til den første kombinasjonsboksen og velg Kvinne. Flytt til den andre kombinasjonsboksen og se de tilgjengelige elementene:

SelectedIndexChanged hendelse

Her er et skjermbilde av koden:

SelectedIndexChanged hendelse

Forklaring av kode:

  1. Opprette en klasse kalt Form1.
  2. Start av en underprosedyre kalt Form1_Load(). Dette utløses når skjemaet er lastet inn. sd As Object refererer til objektet som utløste hendelsen mens systemet As EventArgs har 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.

Sammendrag

  • En komboBox opprettes ved å dra den fra verktøykassen og slippe den inn i skjemaet.
  • Det gir oss en måte å presentere en rekke alternativer for brukeren.
  • Vi kan angi standardelementet som skal velges på ComboBox når skjemaet er lastet inn.
  • SelectedIndexChanged-hendelsen hjelper oss å spesifisere handlingen som skal utføres når et bestemt element er valgt i kombinasjonsboksen.