VB.Net ComboBox Styr med EXEMPEL

โšก Smart sammanfattning

KomboBox i VB.Net รคr en Windows Formulรคrkontroll som kombinerar en textruta med en rullgardinsmeny, vilket lรฅter anvรคndaren vรคlja ett enskilt objekt eller skriva ett, vilket sparar utrymme i ett formulรคr.

  • ๐ŸŽฏ Syfte: Visa en rullgardinsmeny dรคr anvรคndaren vรคljer eller skriver ett vรคrde.
  • โž• Lรคgg till objekt: Fyll i kombinationsrutan i egenskapsfรถnstret eller med Items.Add vid kรถrning.
  • ๐Ÿ” Lรคs urval: SelectedItem, SelectedIndex och Text returnerar det vรคrde som anvรคndaren valt.
  • ๐Ÿ—„๏ธ Bindningsdata: Stรคll in DataSource, DisplayMember och ValueMember fรถr att lรคsa in rader frรฅn en datauppsรคttning.
  • ๐Ÿ”” Upptรคck fรถrรคndringar: Hรคndelsen SelectedIndexChanged utlรถses nรคr det valda objektet รคndras.
  • ๐Ÿค– AI-hjรคlp: GitHub Copilot och Visual Studio IntelliCode skrivkombinationBox hanterare medan du skriver.

VB.Net ComboBox kontroll

Vad รคr Combobox Control?

Combobox-kontrollen hjรคlper dig att visa en rullgardinslista med mรฅnga objekt. Se det som en kombination av en textruta dรคr en anvรคndare skriver in text och en rullgardinslista frรฅn vilken en anvรคndare vรคljer ett objekt. Observera att kombinationsrutan visar ett objekt รฅt gรฅngen.

Skapa en Combobox

En komboBox kan skapas enligt fรถljande:

Steg 1) Skapa en ny applikation.

Steg 2) Dra en kombinationsrutekontroll frรฅn verktygslรฅdan till formulรคret.

VB.Net kombinationsrutekontroll slรคppt frรฅn verktygslรฅdan till en Windows Form

Du kommer att ha skapat en combobox-kontroll.

Lรคgga till objekt i Combobox

Nu nรคr vi har skapat en kombinationsruta, lรฅt oss visa hur man lรคgger till objekt till den.

Double klicka pรฅ kombinationsrutan som du har lagt till. Du kommer att flyttas frรฅn designfliken till fliken med kod.

Fรถr att lรคgga till ett objekt till en kombinationsruta-kontroll anvรคnder vi egenskapen Objekt. Lรฅt oss visa detta genom att lรคgga till tvรฅ objekt i kombinationsrutan, Man och Kvinna:

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

Vi kan ocksรฅ vรคlja att lรคgga till objekt i kombinationsrutan vid designtillfรคllet frรฅn fรถnstret Egenskaper. Hรคr รคr stegen:

Steg 1) ร–ppna fliken design och klicka pรฅ kombinationsrutan.

Steg 2) Gรฅ till Egenskaper-fรถnstret och visa alternativet Objekt.

Steg 3) Klicka pรฅ โ€ฆ som finns till hรถger om (Samling).

Lรคgga till objekt i en VB.Net-kombinationsruta i kod med Items.Add-metoden

VB.Net Egenskaper-fรถnstret รถppnar kombinationsrutan Objekt Samlingsredigerare

Steg 4) Du kommer att se ett nytt fรถnster. Det รคr hรคr du ska lรคgga till objekt i kombinationsrutan, som visas nedan:

String Collection Editor listar manliga och kvinnliga kombinationsrutor

Steg 5) Nรคr du รคr klar med typing objekten, klicka pรฅ OK-knappen.

Steg 6) Klicka pรฅ Start-knappen i det รถvre verktygsfรคltet och klicka pรฅ rullgardinsmenyn i kombinationsrutan.

VB.Net-kombinationsrutan visar att hane รคr vald som standardobjekt vid kรถrning

Objekten har lagts till i kombinationsrutan.

Vรคlja Combobox-objekt

Du kan behรถva stรคlla in standardobjektet som kommer att vรคljas nรคr formulรคret laddas. Du kan uppnรฅ detta via metoden SelectedItem(). Till exempel, fรถr att stรคlla in det valda kรถnet som standard till Man, kan du anvรคnda fรถljande uttalande:

ComboBox1.SelectedItem = "Male"

Nรคr du kรถr koden bรถr combobox-kontrollen vara som visas nedan:

VB.Net-formulรคr som visar kombinationsrutan med alternativen Man och Kvinna

Hรคmtar Combobox-vรคrden

Du kan hรคmta det valda objektet frรฅn din kombinationsruta. Detta kan gรถras med hjรคlp av textegenskapen. Lรฅt oss demonstrera detta med hjรคlp av vรฅr ovanstรฅende kombinationsruta med tvรฅ objekt, det vill sรคga Man och Kvinna. Fรถlj stegen nedan:

Steg 1) Double Klicka pรฅ kombinationsrutan fรถr att รถppna fliken med VB.Net-kod.

Steg 2) Lรคgg till fรถljande kod:

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

Steg 3) Klicka pรฅ Start-knappen i verktygsfรคltet fรถr att kรถra koden. Du bรถr fรฅ upp fรถljande formulรคr:

Code skรคrmdump av VB.Net-kombinationsrutan SelectedIndexChanged-hรคndelsehanteraren

Steg 4) Klicka pรฅ rullgardinsmenyn och vรคlj ditt kรถn. I mitt fall vรคljer jag Man, och jag fรฅr fรถljande:

VB.Net-meddelanderuta som visar den valda kombinationsrutans text Man

Hรคr รคr en skรคrmdump av koden:

Fรถrklaring till Code:

  1. Skapa en klass som heter Form1. Klassen kommer att vara allmรคnt tillgรคnglig eftersom dess รฅtkomstmodifierare har stรคllts in pรฅ Offentlig.
  2. Starta en delprocedur med namnet ComboBox1_SelectedIndexChanged. Detta genereras automatiskt nรคr du dubbelklickar pรฅ kombinationsrutans kontroll frรฅn designfliken. Denna underprocedur anropas nรคr du vรคljer ett objekt frรฅn kombinationsrutan. sd As Object refererar till objektet som utlรถste hรคndelsen, medan evnt As EventArgs innehรฅller hรคndelsedata.
  3. Skapar en strรคngvariabel med namnet var_gender.
  4. Stรคller in vรคrdet fรถr variabeln var_gender till objektet som vรคljs i kombinationsrutan.
  5. Skriva ut vรคrdet fรถr variabeln var_gender i ett meddelandeBox.
  6. Slutet pรฅ kombinationenBox1_SelectedIndexChanged underprocedur.
  7. Slutet pรฅ Form1-klassen.

Ta bort Combobox-objekt

Det รคr mรถjligt fรถr dig att ta bort ett objekt frรฅn din kombinationsruta. Det finns tvรฅ sรคtt genom vilka du kan รฅstadkomma detta. Du kan anvรคnda antingen objektindex eller namnet pรฅ objektet.

Nรคr du anvรคnder objektindexet bรถr du anvรคnda egenskapen Items.RemoveAt() enligt nedan:

ComboBox1.Items.RemoveAt(1)

I exemplet ovan tar vi bort objektet som finns i index 1 i kombinationsrutan. Observera att combobox-index bรถrjar vid index 0, vilket betyder att kommandot ovan tar bort det andra objektet i comboboxen.

Fรถr att ta bort objektet med dess namn bรถr du anvรคnda egenskapen Items.Remove() enligt nedan:

ComboBox1.Items.Remove("Female")

Ovanstรฅende kod bรถr ta bort objektet med namnet Female frรฅn ComboBox1.

Bindande datakรคlla

En komboBox kan fyllas i frรฅn en datamรคngd. Tรคnk pรฅ SQL-frรฅgan nedan:

select emp_id, emp_name from employees; 

Du kan skapa en datakรคlla i ett program och sedan anvรคnda fรถljande kod fรถr att binda den:

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

Detta ger dig ett enkelt sรคtt att fylla din kombinationsruta med data utan att behรถva skriva varje enskilt objekt.

SelectedIndexChanged hรคndelse

Du vill ofta att ditt program ska reagera i det รถgonblick anvรคndaren vรคljer ett nytt vรคrde.

Den hรคr typen av hรคndelse anropas nรคr du รคndrar det valda objektet pรฅ din kombinationsruta. Det รคr hรคndelsen du bรถr anvรคnda nรคr du behรถver implementera en รฅtgรคrd vid en รคndring av det valda objektet i en kombinationsruta. Lรฅt oss visa detta med hjรคlp av ett exempel:

Steg 1) Skapa en ny Windows Blanketter ansรถkan.

Steg 2) Efter det behรถver du dra och slรคppa tvรฅ kombinationsrutor till formulรคret.

Tvรฅ kombinationsrutekontroller placerade sida vid sida i ett VB.Net Windows Form

Steg 3) Double klicka i formulรคret fรถr att รถppna fliken fรถr kod. Ange fรถljande kod:

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

Steg 4) Klicka pรฅ Start-knappen i den รถvre fรคltet fรถr att kรถra koden. Du bรถr fรฅ fรถljande utdata:

Fรถrsta kombinationsrutan fylld med mรคn och kvinnor vid Form_Load

Steg 5) Klicka pรฅ rullgardinsmenyn i den fรถrsta kombinationsrutan och vรคlj Man. Flytta muspekaren till den andra kombinationsrutan och klicka pรฅ dess rullgardinsmeny. Se tillgรคngliga alternativ:

Andra kombinationsrutan som visar Nicholas och John efter att Mรคn har valts

Steg 6) Gรฅ till den fรถrsta kombinationsrutan och vรคlj KvinnaGรฅ till den andra kombinationsrutan och se de tillgรคngliga objekten:

Den andra kombinationsrutan som visar Alice och Grace efter att Kvinnor har valts

Hรคr รคr en skรคrmdump av koden:

Code skรคrmdump av VB.Net SelectedIndexChanged-hanteraren med tvรฅ kombinationsrutor

Fรถrklaring till Code:

  1. Skapa en klass som heter Form1.
  2. Start av en delprocedur med namnet Form1_Load(). Denna kommer att utlรถsas nรคr formulรคret har laddats. sd As Object refererar till objektet som genererade hรคndelsen, medan evnt As EventArgs innehรฅller hรคndelsedata.
  3. Lรคgger till objektet Hanar till kombinationenBox1.
  4. Lรคgga till objektet Kvinnor till kombinationenBox1.
  5. Slut pรฅ underproceduren Form1_Load().
  6. Start av en underprocedur som heter ComboBox1_SelectedIndexChanged(). Detta kommer att anropas nรคr ett objekt vรคljs i den fรถrsta kombinationsrutan. Avsรคndaren som objekt refererar till objektet som skapade hรคndelsen medan e As EventArgs har hรคndelsedata.
  7. Gรถr ComboBox2 tomma, rensa alla fรถremรฅl frรฅn den.
  8. Skapar ett villkor. Kontrollerar om det valda objektet รคr pรฅ ComboBox1 รคr hanar.
  9. Lรคgg till objektet Nicholas i kombinationenBox2 nรคr ovanstรฅende villkor รคr sant, det vill sรคga objekt som valts pรฅ ComboBox1 รคr man.
  10. Lรคgg till objektet John i kombinationenBox2 nรคr ovanstรฅende villkor รคr sant, det vill sรคga objekt som valts pรฅ ComboBox1 รคr hanar.
  11. Skapar ett villkor. Kontrollerar om det valda objektet รคr pรฅ ComboBox1 รคr honor.
  12. Lรคgg till objektet Alice i kombinationenBox2 nรคr ovanstรฅende villkor รคr sant, det vill sรคga objekt som valts pรฅ ComboBox1 รคr honor.
  13. Lรคgg till objektet Grace i kombinationenBox2 nรคr ovanstรฅende villkor รคr sant, det vill sรคga objekt som valts pรฅ ComboBox1 รคr honor.
  14. Slutet pรฅ If-blocket.
  15. Slutet pรฅ kombinationenBox1_SelectedIndexChanged() underprocedur.
  16. Slut pรฅ klassen Form1.

Vanliga frรฅgor

En komboBox sparar utrymme genom att dรถlja listan tills man klickar pรฅ pilen och kan ta emot maskinskriven inmatning. En listaBox visar alla objekt samtidigt och tillรฅter endast val.

DropDownStyle vรคljer beteendet: DropDown (standard) lรฅter anvรคndaren skriva fritext; DropDownList begrรคnsar inmatningen till objekt i listan; Simple hรฅller listan รถppen hela tiden.

SelectedIndex returnerar den nollbaserade positionen, SelectedItem returnerar objektet som รคr bundet till den raden och Text returnerar strรคngen i redigeringsrutan, inklusive text som anvรคndaren skrev.

SamtalskombinationBox1.Items.Clear() fรถr att tรถmma listan. Fรถr att รคven รฅterstรคlla texten som visas i redigeringsrutan, fรถlj upp det med ComboBox1.SelectedIndex = -1 eller sรคtt ComboBox1.Text = String.Empty.

Stรคll in egenskapen DropDownStyle till DropDownList i egenskapsfรถnstret eller i kod (ComboBox1.DropDownStyle = KombinationBoxAnvรคndaren kan dรฅ bara vรคlja objekt som redan finns i listan.

TextChanged aktiveras nรคr anvรคndaren redigerar textrutedelen. SelectedIndexChanged aktiveras endast nรคr det markerade objektet i listrutan รคndras, oavsett om det รคr med mus, tangentbord eller kod.

Ja. GitHub Copilot konverterar en kommentar i vanlig engelska till ett fullstรคndigt SelectedIndexChanged- eller DataBindings-block. Granska alltid den genererade koden innan leverans.ping.

Ja. Visual Studio 2026 parar ihop Copilot med IntelliCode fรถr helradiga, kontextmedvetna kompletteringar av ComboBox fastigheter och hรคndelser.

Sammanfatta detta inlรคgg med: