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.
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).
Trinn 4)Du vil se et nytt vindu. Det er her du bør legge til elementer i kombinasjonsboksen, som vist nedenfor:
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.
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:
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:
Trinn 4) Klikk på rullegardinknappen og velg kjønn. I mitt tilfelle. Jeg velger Mann, og jeg får følgende:
Her er et skjermbilde av koden:
Forklaring av kode:
- Opprette en klasse kalt Form1. Klassen vil være offentlig tilgjengelig siden tilgangsmodifikatoren er satt til Offentlig.
- 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.
- Opprette et strengheltall kalt var_gender.
- Sette verdien av variabelen var_kjønn til elementet som er valgt i kombinasjonsboksen.
- Skrive ut verdien av variabelen var_gender på en meldingBox.
- Slutt på kombinasjonenBox1_SelectedIndexChanged underprosedyre.
- 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.
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:
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:
Trinn 6) Flytt til den første kombinasjonsboksen og velg Kvinne. Flytt til den andre kombinasjonsboksen og se de tilgjengelige elementene:
Her er et skjermbilde av koden:
Forklaring av kode:
- Opprette en klasse kalt Form1.
- 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.
- Legge til elementet Hanner til kombinasjonenBox1.
- Legge til elementet kvinner til kombinasjonenBox1.
- Slutt på Form1_Load()-underprosedyren.
- 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.
- Lag ComboBox2 tomme, fjern alle elementer fra den.
- Opprette en tilstand. Sjekker om det valgte elementet er på ComboBox1 er hanner.
- Legg elementet Nicholas til kombinasjonenBox2 når betingelsen ovenfor er sann, det vil si element valgt på ComboBox1 er mann.
- Legg elementet John til kombinasjonenBox2 når betingelsen ovenfor er sann, det vil si element valgt på ComboBox1 er hanner.
- Opprette en tilstand. Sjekker om det valgte elementet er på ComboBox1 er kvinner.
- Legg til elementet Alice i kombinasjonenBox2 når betingelsen ovenfor er sann, det vil si element valgt på ComboBox1 er kvinner.
- Legg til elementet Grace til kombinasjonenBox2 når betingelsen ovenfor er sann, det vil si element valgt på ComboBox1 er kvinner.
- Slutten av If-blokken.
- Slutt på kombinasjonenBox1_SelectedIndexChanged() underprosedyre.
- 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.