VB.Net ComboBox Контролирайте с ПРИМЕР
Какво е Combobox Control?
Контролата на падащия списък ви помага да покажете падащ списък с много елементи. Вижте го като комбинация от текстово поле, в което потребителят въвежда текст, и падащ списък, от който потребителят избира елемент. Обърнете внимание, че падащият списък показва един елемент наведнъж.
Създаване на комбиниран списък
КомбоBox може да се създаде, както следва:
Стъпка 1) Създайте ново приложение.
Стъпка 2) Плъзнете контрола на разгъващ се списък от кутията с инструменти във формуляра.
Вие ще сте създали контрола за комбинирано поле.
Добавяне на елементи към комбинирания списък
Сега, след като създадохме комбиниран списък, нека демонстрираме как да добавяме елементи към него.
Double щракнете върху контролата на разгъващия се списък, която сте добавили. Ще бъдете преместени от раздела за дизайн в раздела с код.
За да добавим елемент към контрола на разгъващ се списък, използваме свойството Items. Нека демонстрираме това, като добавим два елемента към падащия списък, мъжки и женски:
ComboBox1.Items.Add("Male") ComboBox1.Items.Add("Female")
Можем също така да изберем да добавим елементи към комбинирания списък по време на проектиране от прозореца Properties. Ето стъпките:
Стъпка 1) Отворете раздела за проектиране и щракнете върху контролата на разгъващия се списък.
Стъпка 2) Преминете към прозореца Свойства и вижте опцията Елементи.
Стъпка 3) Щракнете върху … разположен вдясно от (Колекция).
Стъпка 4)Ще видите нов прозорец. Това е мястото, където трябва да добавите елементи към падащия списък, както е показано по-долу:
Стъпка 5) След като приключите с въвеждането на елементите, щракнете върху бутона OK.
Стъпка 6) Щракнете върху бутона Старт от горната лента с инструменти и щракнете върху иконата на падащото меню в падащия списък.
Елементите бяха успешно добавени към контролата на разгъващия се списък.
Избиране на елементи от падащия списък
Може да се наложи да зададете елемента по подразбиране, който ще бъде избран, когато формулярът се зареди. Можете да постигнете това чрез метода SelectedItem(). Например, за да зададете избрания по подразбиране пол на Мъж, можете да използвате следния израз:
ComboBox1.SelectedItem = "Male"
Когато стартирате кода, контролата на разгъващия се списък трябва да бъде както е показано по-долу:
Извличане на стойности на комбинирания списък
Можете да получите избрания елемент от падащия списък. Това може да стане с помощта на свойството text. Нека демонстрираме това, като използваме нашия горен списък с два елемента, а именно мъжки и женски. Следвайте стъпките по-долу:
Стъпка 1) Double щракнете върху падащия списък, за да отворите раздела с VB.NET код.
Стъпка 2) Добавете следния код:
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
Стъпка 3) Щракнете върху бутона Старт от лентата с инструменти, за да изпълните кода. Трябва да получите следната форма:
Стъпка 4) Щракнете върху падащия бутон и изберете вашия пол. В моя случай. Избирам Male и получавам следното:
Ето екранна снимка на кода:
Обяснение на кода:
- Създаване на клас с име Form1. Класът ще бъде публично достъпен, тъй като неговият модификатор за достъп е зададен на Public.
- Стартиране на подпроцедура, наречена ComboBox1_SelectedIndexChanged. Това се генерира автоматично, когато щракнете двукратно върху контролата на падащото поле от раздела за проектиране. Тази подпроцедура ще бъде извикана, когато изберете елемент от падащия списък. Обектът sd As препраща към обекта, който е предизвикал събитието, докато събитието As EventArgs има данните за събитието s.
- Създаване на низ цяло число с име var_gender.
- Задаване на стойността на променливата var_gender към елемента, който е избран в падащия списък.
- Отпечатване на стойността на променливата var_gender в съобщениеBox.
- Край на комбинациятаBoxПодпроцедура 1_SelectedIndexChanged.
- Край на класа Form1.
Премахване на елементи от комбинирания списък
Възможно е да премахнете елемент от падащия списък. Има два начина, по които можете да постигнете това. Можете да използвате или индекса на артикула, или името на артикула.
Когато използвате индекса на елемента, трябва да използвате свойството Items.RemoveAt(), както е показано по-долу:
ComboBox1.Items.RemoveAt(1)
В горния пример ние премахваме елемента, намиращ се на индекс 1 на падащия списък. Обърнете внимание, че индексите на разгъващия се списък започват от индекс 0, което означава, че горната команда ще премахне втория елемент от разгъващия се списък.
За да премахнете елемента, използвайки името му, трябва да използвате свойството Items.Remove(), както е показано по-долу:
ComboBox1.Items.Remove("Female")
Горният код трябва да премахне елемента с име Female от ComboBox1.
Обвързващ източник на данни
КомбоBox може да се попълни от набор от данни. Разгледайте SQL заявката, дадена по-долу:
select emp_id, emp_name from employees;
Можете да създадете източник на данни в програма, след което да използвате следния код, за да го обвържете:
comboBox1.DataSource = ds.Tables(0) comboBox1.ValueMember = "emp_id" comboBox1.DisplayMember = "emp_name"
Това ще ви осигури лесен начин за попълване на вашия контролен списък с данни, без да се налага да въвеждате всеки отделен елемент.
Събитие SelectedIndexChanged
Този тип събитие се извиква, когато промените избрания елемент в падащия списък. Това е събитието, което трябва да използвате, когато трябва да приложите действие при промяна на избрания елемент от падащ списък. Нека демонстрираме това с помощта на пример:
Стъпка 1) Създайте ново приложение Window Forms.
Стъпка 2) След това трябва Плъзнете и пуснете две контроли от разгъващ се списък във формуляра.
Стъпка 3) Double щракнете във формуляра, за да отворите раздела за код. Въведете следния код:
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
Стъпка 4) Щракнете върху бутона Старт от горната лента, за да изпълните кода. Трябва да получите следния резултат:
Стъпка 5) Щракнете върху падащия бутон в първия разгъващ се списък и изберете Мъж. Преместете курсора на мишката до второто комбинирано поле и щракнете върху неговия падащ бутон. Вижте наличните артикули:
Стъпка 6) Преминете към първия списък и изберете Жена. Преминете към второто комбинирано поле и вижте наличните елементи:
Ето екранна снимка на кода:
Обяснение на кода:
- Създаване на клас с име Form1.
- Старт на подпроцедура с име Form1_Load(). Това ще се задейства, след като формулярът бъде зареден. Обектът sd As препраща към обекта, който е предизвикал събитието, докато системата As EventArgs има данните за събитието.
- Добавяне на артикула Мъже към комбинациятаBox1.
- Добавяне на артикула Females към ComboBox1.
- Край на подпроцедурата Form1_Load().
- Старт на подпроцедура, наречена ComboBox1_SelectedIndexChanged(). Това ще бъде извикано, когато е избран елемент в първия списък. Изпращащият As Object препраща към обекта, който е предизвикал събитието, докато e As EventArgs има данните за събитието.
- Направете комбоBox2 празен, изчистете всички елементи от него.
- Създаване на условие. Проверка дали избраният елемент е на ComboBox1 е мъже.
- Добавете артикула Nicholas към комботоBox2, когато горното условие е вярно, т.е. елементът е избран в ComboBox1 е мъж.
- Добавете артикула Джон към комбинациятаBox2, когато горното условие е вярно, т.е. елементът е избран в ComboBox1 е мъже.
- Създаване на условие. Проверка дали избраният елемент е на ComboBox1 е Жени.
- Добавете предмета Алиса към комбинациятаBox2, когато горното условие е вярно, т.е. елементът е избран в ComboBox1 е Жени.
- Добавете артикула Grace към комботоBox2, когато горното условие е вярно, т.е. елементът е избран в ComboBox1 е Жени.
- Край на блока If.
- Край на комбинациятаBoxПодпроцедура 1_SelectedIndexChanged().
- Край на класа Form1.
Oбобщение
- КомбоBox се създава чрез плъзгане от кутията с инструменти и пускане във формуляра.
- Предоставя ни начин за представяне на множество опции на потребителя.
- Можем да зададем елемента по подразбиране, който да бъде избран в комботоBox когато формата е заредена.
- Събитието SelectedIndexChanged ни помага да уточним действието, което да предприемем, когато конкретен елемент е избран в падащия списък.