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.
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 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).
Trinn 4) Du vil se et nytt vindu. Det er her du skal legge til elementer i kombinasjonsboksen, som vist nedenfor:
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.
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 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:
Trinn 4) Klikk pรฅ rullegardinmenyen og velg kjรธnn. I mitt tilfelle velger jeg Mann, og jeg fรฅr fรธlgende:
Her er et skjermbilde av koden:
Forklaring til Code:
- Opprette en klasse kalt Form1. Klassen vil vรฆre offentlig tilgjengelig siden tilgangsmodifikatoren er satt til Offentlig.
- 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.
- Oppretter en strengvariabel med navnet var_gender.
- Sette verdien av variabelen var_kjรธnn til elementet som er valgt i kombinasjonsboksen.
- Skrive ut verdien til variabelen var_gender i 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
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.
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:
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:
Trinn 6) Gรฅ til den fรธrste kombinasjonsboksen og velg HunnGรฅ til den andre kombinasjonsboksen og se de tilgjengelige elementene:
Her er et skjermbilde av koden:
Forklaring til Code:
- Opprette en klasse kalt Form1.
- 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.
- 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.













