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.
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.
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).
Trin 4) Du vil se et nyt vindue. Det er her, du skal tilføje elementer til kombinationsfeltet, som vist nedenfor:
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.
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:
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:
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:
Her er et skærmbillede af koden:
Forklaring af Code:
- Oprettelse af en klasse ved navn Form1. Klassen vil være offentlig tilgængelig, da dens adgangsmodifikator er blevet indstillet til Offentlig.
- 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.
- Opretter en strengvariabel med navnet var_gender.
- Indstilling af værdien af variabel var_gender til det element, der er valgt i kombinationsboksen.
- Udskrivning af værdien af variablen var_gender i en beskedBox.
- Slut på ComboBox1_SelectedIndexChanged underprocedure.
- 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.
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:
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:
Trin 6) Gå til den første kombinationsboks og vælg KvindeGå til den anden kombinationsboks og se de tilgængelige elementer:
Her er et skærmbillede af koden:
Forklaring af Code:
- Oprettelse af en klasse ved navn Form1.
- 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.
- Tilføjelse af emnet Hanner til kombinationenBox1.
- Tilføjelse af emnet Kvinder til kombinationenBox1.
- Slut på Form1_Load()-underproceduren.
- 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.
- Lav ComboBox2 tomme, ryd alle elementer fra den.
- Oprettelse af en betingelse. Kontrollerer, om det valgte element er på ComboBox1 er hanner.
- Tilføj elementet Nicholas til kombinationenBox2, når ovenstående betingelse er sand, dvs. element valgt på ComboBox1 er mand.
- Tilføj elementet John til kombinationenBox2, når ovenstående betingelse er sand, dvs. element valgt på ComboBox1 er hanner.
- Oprettelse af en betingelse. Kontrollerer, om det valgte element er på ComboBox1 er hunner.
- Tilføj elementet Alice til ComboBox2, når ovenstående betingelse er sand, dvs. element valgt på ComboBox1 er hunner.
- Tilføj elementet Grace til ComboBox2, når ovenstående betingelse er sand, dvs. element valgt på ComboBox1 er hunner.
- Slut på If-blokken.
- Slut på ComboBox1_SelectedIndexChanged() underprocedure.
- Slut på klassen Form1.













