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: