Kombinace VB.NetBox Ovládání pomocí EXAMPLE

⚡ Chytré shrnutí

ComboBox ve VB.Net je Windows Ovládací prvek Formuláře, který kombinuje textové pole s rozevíracím seznamem a umožňuje uživateli vybrat jednu položku nebo ji napsat, čímž šetří místo ve formuláři.

  • 🎯 Účel: Zobrazit rozbalovací seznam, kde uživatel vybere nebo zadá jednu hodnotu.
  • Přidat položky: Naplňte pole se seznamem v okně Vlastnosti nebo pomocí Items.Add za běhu.
  • 🔍 Přečíst výběr: Funkce SelectedItem, SelectedIndex a Text vrací hodnotu vybranou uživatelem.
  • 🗄️ Vázat data: Nastavte DataSource, DisplayMember a ValueMember pro načítání řádků z datové sady.
  • 🔔 Detekce změn: Událost SelectedIndexChanged se spustí vždy, když se změní vybraná položka.
  • 🤖 Pomoc s umělou inteligencí: GitHub Copilot a Visual Studio IntelliCode napsat kombinaciBox obslužné rutiny během psaní.

Kombinace VB.NetBox ovládání

Co je Combobox Control?

Ovládací prvek combobox vám pomůže zobrazit rozevírací seznam s mnoha položkami. Podívejte se na to jako na kombinaci textového pole, do kterého uživatel zadává text, a rozevíracího seznamu, ze kterého uživatel vybírá položku. Všimněte si, že pole se seznamem zobrazuje vždy jednu položku.

Vytvoření Comboboxu

KombinaceBox lze vytvořit následovně:

Krok 1) Vytvořte novou aplikaci.

Krok 2) Přetáhněte ovládací prvek pole se seznamem z panelu nástrojů do formuláře.

Ovládací prvek VB.Net combobox byl přesunut z panelu nástrojů na Windows Formulář

Budete mít vytvořený ovládací prvek combobox.

Přidávání položek do Comboboxu

Nyní, když jsme vytvořili combobox, ukažme si, jak do něj přidat položky.

Double klepněte na ovládací prvek pole se seznamem, který jste přidali. Budete přesunuti z karty návrh na kartu s kódem.

Chcete-li přidat položku do ovládacího prvku combobox, použijeme vlastnost Items. Ukažme si to přidáním dvou položek do comboboxu, Muž a Žena:

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

Můžeme se také rozhodnout přidat položky do comboboxu v době návrhu z okna Vlastnosti. Zde jsou kroky:

Krok 1) Otevřete kartu návrh a klikněte na ovládací prvek pole se seznamem.

Krok 2) Přejděte do okna Vlastnosti a zobrazte možnost Položky.

Krok 3) Klikněte na … umístěné napravo od (Kolekce).

Přidávání položek do comboboxu VB.Net v kódu pomocí metody Items.Add

Okno Vlastnosti VB.Net otevírající editor kolekce položek v rozbalovacím seznamu

Krok 4) Zobrazí se nové okno. Zde byste měli přidat položky do rozbalovacího seznamu, jak je znázorněno níže:

Editor kolekce řetězců, který zobrazuje položky v rozbalovacím seznamu pro muže a ženy

Krok 5) Jakmile je hotovo s typing položky, klikněte na tlačítko OK.

Krok 6) Klikněte na tlačítko Start v horním panelu nástrojů a poté na ikonu rozbalovací nabídky v rozbalovacím seznamu.

VB.Net Combobox zobrazující Muž vybraný jako výchozí položka za běhu

Položky byly úspěšně přidány do ovládacího prvku pole se seznamem.

Výběr položek Comboboxu

Možná budete muset nastavit výchozí položku, která bude vybrána při načtení formuláře. Toho lze dosáhnout pomocí metody SelectedItem(). Chcete-li například nastavit výchozí vybrané pohlaví na Muž, můžete použít následující příkaz:

ComboBox1.SelectedItem = "Male"

Když spustíte kód, ovládací prvek pole se seznamem by měl vypadat následovně:

Formulář VB.Net zobrazující rozbalovací seznam s možnostmi pro muže a ženy

Načítání hodnot Comboboxu

Vybranou položku můžete získat ze svého vyskakovacího pole. To lze provést pomocí vlastnosti text. Ukažme si to na výše uvedeném vyskakovacím poli se dvěma položkami, a to mužem a ženou. Postupujte podle následujících kroků:

Krok 1) Double Kliknutím na rozbalovací seznam otevřete kartu s kódem VB.Net.

Krok 2) Přidejte následující kód:

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

Krok 3) Klikněte na tlačítko Start na panelu nástrojů pro spuštění kódu. Měli byste dostat následující formulář:

Code Snímek obrazovky obslužné rutiny události SelectedIndexChanged ve VB.Net comboboxu

Krok 4) Klikněte na rozbalovací tlačítko a vyberte své pohlaví. V mém případě jsem vybral muž a zobrazí se mi následující:

Okno zprávy VB.Net zobrazující vybranou položku v rozbalovacím seznamu (Muž)

Zde je snímek obrazovky kódu:

Vysvětlení Code:

  1. Vytvoření třídy s názvem Form1. Třída bude veřejně přístupná, protože její modifikátor přístupu byl nastaven na Public.
  2. Spuštění podprocedury s názvem ComboBox1_SelectedIndexChanged. Toto se automaticky vygeneruje po dvojitém kliknutí na ovládací prvek pole se seznamem na kartě návrhu. Tato dílčí procedura se vyvolá při výběru položky ze pole se seznamem. Objekt sd As odkazuje na objekt, který událost vyvolal, zatímco objekt evnt As EventArgs obsahuje data události.
  3. Vytvoření řetězcové proměnné s názvem var_gender.
  4. Nastavení hodnoty proměnné var_gender na položku, která je vybrána v poli se seznamem.
  5. Výpis hodnoty proměnné var_gender do zprávyBox.
  6. Konec kombaBox1_SelectedIndexChanged dílčí postup.
  7. Konec třídy Form1.

Odebrání položek Comboboxu

Je možné odebrat položku z pole se seznamem. Existují dva způsoby, jak toho můžete dosáhnout. Můžete použít buď index položky, nebo název položky.

Při použití indexu položek byste měli použít vlastnost Items.RemoveAt(), jak je uvedeno níže:

ComboBox1.Items.RemoveAt(1)

Ve výše uvedeném příkladu odstraňujeme položku umístěnou na indexu 1 pole se seznamem. Všimněte si, že indexy pole se seznamem začínají na indexu 0, což znamená, že výše uvedený příkaz odstraní druhou položku pole se seznamem.

Chcete-li odstranit položku pomocí jejího názvu, měli byste použít vlastnost Items.Remove(), jak je uvedeno níže:

ComboBox1.Items.Remove("Female")

Výše uvedený kód by měl odstranit položku s názvem Female z ComboBox1.

Vazba DataSource

KombinaceBox lze naplnit z datové sady. Zvažte dotaz SQL uvedený níže:

select emp_id, emp_name from employees; 

Můžete vytvořit zdroj dat v programu a poté jej svázat pomocí následujícího kódu:

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

To vám poskytne snadný způsob naplnění ovládacího prvku pole se seznamem daty, aniž byste museli zadávat každou jednotlivou položku.

Událost SelectedIndexChanged

Často budete chtít, aby váš program reagoval v okamžiku, kdy uživatel vybere novou hodnotu.

Tento typ události se vyvolá, když změníte vybranou položku v poli se seznamem. Je to událost, kterou byste měli použít, když potřebujete implementovat akci při změně na vybrané položce comboboxu. Ukažme si to na příkladu:

Krok 1) Vytvořte nový Windows Aplikace formulářů.

Krok 2) Poté je třeba do formuláře přetáhnout dva ovládací prvky se seznamem.

Dva ovládací prvky combobox umístěné vedle sebe ve VB.Net Windows Formulář

Krok 3) Double kliknutím do formuláře otevřete kartu pro kód. Zadejte následující kód:

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

Krok 4) Klikněte na tlačítko Start v horní liště pro spuštění kódu. Měli byste dostat následující výstup:

První vyskakovací pole naplněné muži a ženami při Form_Load

Krok 5) Klikněte na rozbalovací tlačítko v prvním rozbalovacím seznamu a vyberte Muž. Přesuňte kurzor myši na druhý rozbalovací seznam a klikněte na jeho rozbalovací tlačítko. Podívejte se na dostupné položky:

Druhý rozbalovací seznam zobrazující Nicholase a Jana po výběru položky Muži

Krok 6) Přejděte na první rozbalovací seznam a vyberte ŽenaPřejděte do druhého rozbalovacího seznamu a podívejte se na dostupné položky:

Druhý rozbalovací seznam zobrazující Alici a Grace po výběru Samice

Zde je snímek obrazovky kódu:

Code snímek obrazovky obslužné rutiny SelectedIndexChanged pro dva seznamy ve VB.Net

Vysvětlení Code:

  1. Vytvoření třídy s názvem Form1.
  2. Začátek podprocedury s názvem Form1_Load(). Ta bude spuštěna po načtení formuláře. Objekt sd As odkazuje na objekt, který událost vyvolal, zatímco objekt evnt As EventArgs obsahuje data události.
  3. Přidání položky Muži do ComboBox1.
  4. Přidání položky Ženy do ComboBox1.
  5. Konec dílčího postupu Form1_Load().
  6. Začátek dílčího postupu s názvem ComboBox1_SelectedIndexChanged(). To bude vyvoláno, když je položka vybrána v prvním poli se seznamem. Odesílatel As Object odkazuje na objekt, který vyvolal událost, zatímco e As EventArgs má data události.
  7. Vytvořte ComboBox2 prázdné, vymažte z něj všechny položky.
  8. Vytvoření podmínky. Kontrola, zda je vybraná položka na ComboBox1 jsou muži.
  9. Přidejte předmět Nicholas do ComboBox2, když platí výše uvedená podmínka, tj. položka vybraná v ComboBox1 je Muž.
  10. Přidejte položku John do ComboBox2, když platí výše uvedená podmínka, tj. položka vybraná v ComboBox1 jsou muži.
  11. Vytvoření podmínky. Kontrola, zda je vybraná položka na ComboBox1 jsou ženy.
  12. Přidejte předmět Alice do ComboBox2, když platí výše uvedená podmínka, tj. položka vybraná v ComboBox1 jsou ženy.
  13. Přidejte položku Grace do ComboBox2, když platí výše uvedená podmínka, tj. položka vybraná v ComboBox1 jsou ženy.
  14. Konec bloku If.
  15. Konec kombaBoxDílčí postup 1_SelectedIndexChanged().
  16. Konec třídy Form1.

Nejčastější dotazy

KombinaceBox šetří místo tím, že skryje seznam, dokud nekliknete na šipku, a může přijímat zadané texty. SeznamBox zobrazuje všechny položky najednou a umožňuje pouze výběr.

DropDownStyle volí chování: DropDown (výchozí) umožňuje uživateli psát volný text; DropDownList omezuje vstup na položky v seznamu; Simple udržuje seznam neustále otevřený.

SelectedIndex vrací pozici od nuly, SelectedItem vrací objekt vázaný na daný řádek a Text vrací řetězec v editačním poli, včetně textu, který uživatel zadal.

Kombinované voláníBox1. Items.Clear() pro vyprázdnění seznamu. Chcete-li také resetovat text zobrazený v editačním poli, použijte za ním ComboBox1.SelectedIndex = -1 nebo nastavte ComboBox1.Text = Řetězec.Prázdný.

V okně Vlastnosti nebo v kódu (Combo) nastavte vlastnost DropDownStyle na DropDownListBox1.DropDownStyle = KombinaceBoxStyle.DropDownList). Uživatel pak může vybrat pouze položky, které jsou již v seznamu.

Funkce TextChanged se aktivuje, když uživatel upravuje část textového pole. Funkce SelectedIndexChanged se aktivuje pouze tehdy, když se zvýrazněná položka v rozevíracím seznamu změní, ať už myší, klávesnicí nebo kódem.

Ano. GitHub Copilot převede komentář v prosté angličtině na plnohodnotný blok SelectedIndexChanged nebo DataBindings. Před odesláním vždy zkontrolujte vygenerovaný kód.ping.

Ano. Visual Studio 2026 kombinuje Copilot s intelliCode pro celořádkové, kontextově orientované dokončení ComboBox vlastnosti a události.

Shrňte tento příspěvek takto: