Kombinace VB.NetBox Ovládání pomocí EXAMPLE
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 ze sady nástrojů do formuláře.
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).
Krok 4)Zobrazí se vám nové okno. Zde byste měli přidat položky do pole se seznamem, jak je znázorněno níže:
Krok 5) Po zadání položek klikněte na tlačítko OK.
Krok 6) Klikněte na tlačítko Start na horním panelu nástrojů a klikněte na ikonu rozevíracího seznamu v poli se seznamem.
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ě:
Načítání hodnot Comboboxu
Vybranou položku můžete získat ze svého comboboxu. To lze provést pomocí vlastnosti text. Pojďme si to ukázat pomocí našeho výše uvedeného comboboxu se dvěma položkami, tedy Muž a Žena. Postupujte podle níže uvedených kroků:
Krok 1) Double kliknutím na pole se seznamem otevřete kartu s VB.NET kód.
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) Kliknutím na tlačítko Start na panelu nástrojů spustíte kód. Měli byste dostat následující formulář:
Krok 4) Klikněte na rozbalovací tlačítko a vyberte své pohlaví. V mém případě. Vyberu si Male a dostanu následující:
Zde je snímek obrazovky kódu:
Vysvětlení kódu:
- 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.
- Spuštění dílčího postupu s názvem ComboBox1_SelectedIndexZměněno. Vygeneruje se automaticky, když dvakrát kliknete na ovládací prvek pole se seznamem na kartě Návrh. Tento dílčí postup bude vyvolán, když vyberete položku z pole se seznamem. Objekt sd As odkazuje na objekt, který vyvolal událost, zatímco událost As EventArgs má data události s.
- Vytvoření řetězce celého čísla s názvem var_gender.
- Nastavení hodnoty proměnné var_gender na položku, která je vybrána v poli se seznamem.
- Tisk hodnoty proměnné var_gender na zprávuBox.
- Konec kombaBox1_SelectedIndexChanged dílčí postup.
- 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
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 novou aplikaci Window Forms.
Krok 2) Poté musíte Přetáhněte dva ovládací prvky pole se seznamem do formuláře.
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) Kliknutím na tlačítko Start na horní liště spustíte kód. Měli byste získat následující výstup:
Krok 5) Klikněte na rozbalovací tlačítko v prvním poli se seznamem a vyberte možnost Muž. Přesuňte kurzor myši na druhý combobox a klikněte na jeho rozbalovací tlačítko. Podívejte se na dostupné položky:
Krok 6) Přesuňte se do prvního pole se seznamem a zvolte Žena. Přejděte do druhého pole se seznamem a prohlédněte si dostupné položky:
Zde je snímek obrazovky kódu:
Vysvětlení kódu:
- Vytvoření třídy s názvem Form1.
- Spuštění dílčí procedury s názvem Form1_Load(). To se spustí po načtení formuláře. Objekt sd As odkazuje na objekt, který vyvolal událost, zatímco systém As EventArgs má data události.
- Přidání položky Muži do ComboBox1.
- Přidání položky Ženy do ComboBox1.
- Konec dílčího postupu Form1_Load().
- 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.
- Vytvořte ComboBox2 prázdné, vymažte z něj všechny položky.
- Vytvoření podmínky. Kontrola, zda je vybraná položka na ComboBox1 jsou muži.
- Přidejte předmět Nicholas do ComboBox2, když platí výše uvedená podmínka, tj. položka vybraná v ComboBox1 je Muž.
- Přidejte položku John do ComboBox2, když platí výše uvedená podmínka, tj. položka vybraná v ComboBox1 jsou muži.
- Vytvoření podmínky. Kontrola, zda je vybraná položka na ComboBox1 jsou ženy.
- Přidejte předmět Alice do ComboBox2, když platí výše uvedená podmínka, tj. položka vybraná v ComboBox1 jsou ženy.
- Přidejte položku Grace do ComboBox2, když platí výše uvedená podmínka, tj. položka vybraná v ComboBox1 jsou ženy.
- Konec bloku If.
- Konec kombaBoxDílčí postup 1_SelectedIndexChanged().
- Konec třídy Form1.
Shrnutí
- KombinaceBox se vytvoří přetažením z panelu nástrojů a puštěním do formuláře.
- Poskytuje nám způsob, jak uživateli nabídnout řadu možností.
- Můžeme nastavit výchozí položku, která se má vybrat na ComboBox když se formulář načte.
- Událost SelectedIndexChanged nám pomáhá určit akci, která se má provést, když je v poli se seznamem vybrána konkrétní položka.