Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_3-4.docx
Скачиваний:
5
Добавлен:
10.07.2019
Размер:
208.59 Кб
Скачать

Створення випадних списків з допомогою елементу управління ComboBox

Списки ListBox зручні, але у них є два недоліки. По-перше, вони займають багато місця. По-друге, користувачі не можуть вводити власні значення, а повинні вибирати серед елементів списку. Якщо треба заощадити місце або дозволити користувачеві вводити значення, яке може не міститися в списку, використовуйте елемент управління ComboBox (комбінований список).

У комбінованого списку ComboBox є колекція Items, така ж, як і у списку ListBox.

ComboBox існує в трьох варіантах. Розглянемо їх в міру ускладнення.

ComboBox (варіант «Список, що розкривається»). Варіант елементу Combobox визначається значенням його властивості DropDownStyle. Виберіть варіант DropDownList - «Список, що розкривається». Заповніть Combobox так само, як ви заповнювали список Listbox. Для прискорення заповнення ви можете просто скопіювати в його Редактор строкових колекцій весь вміст Редактора строкових колекцій вже готового списку Listbox1. Запустіть проект. У лівій частині малюнка ви бачите закритий список, що розкривається.

Клацніть по чорній трикутній стрілці в правій частині списку. Список розкриється і виглядатиме так, як в правій частині малюнку. Тепер ви зможете вибрати з нього будь-який елемент так само, як ви вибирали елементи із списку ListBox. Вибраний елемент з'являється в текстовому полі нагорі списку. У даному варіанті ComboBox редагувати (вручну змінювати) текстове поле ми не можемо.

ComboBox (варіант «Простий ComboBox»). Помістіть на формі ComboBox. У його властивості DropDownStyle виберіть варіант Simple – «Простий». Заповніть ComboBox. Запустіть проект. ComboBox виглядає так:

Він не згортається на відміну від списку, що розкривається, зате його текстове поле можна редагувати.

ComboBox (варіант «ComboBox, що розкривається»). ComboBox, що розкривається, об'єднує в собі переваги двох інших варіантів ComboBox: він виглядає так само компактно, як список, що розкривається, і дозволяє редагувати текстове поле, як простий ComboBox. Значення його властивості DropDownStyle рівне DropDown.

Перше, на що ви звернете увагу - це те, що у комбінованого списку ComboBox є властивість Text, на відміну від звичайного списку ListBox. Ця властивість працює так само, як і властивість Text для текстового поля. Коли користувач вибирає елемент з випадного списку, значення вибраного елементу поміщається в властивість Text текстового поля. За замовчанням користувач може ввести будь-який текст в текстове поле комбінованого списку - навіть якщо цього тексту немає в списку.

Наведемо приклад програми де використовується властивість комбінованого списку Text. Цей найпростіший додаток буде відображати список тварин користувача в списку, що розвертається. Коли користувач клацає на кнопці, додаток відображатиме кількість ніг у вибраної із списку тварини (птах, кінь, кішка, собака, змія, сороконіжка) у вікні повідомлення. Для цього потрібно на форму нанести комбінований список та кнопку, потім добавити перелік тварин в список та написати код для кнопки. Інтерфейс додатку буде виглядати так:

Добавимо в подію Click для кнопки такий код:

Select Case ComboBox1.Text

Case Is = "Птах"

MsgBox("Тварина має дві ноги")

Case Is = "Кінь", "Кішка", "Собака"

MsgBox("Тварина має чотири ноги")

Case Is = "Змія"

MsgBox("Тварина не має ніг")

Case Is = "Сороконіжка"

MsgBox("Тварина має сорок ніг")

Case Else

MsgBox("Тварина не вибрана із списку")

End Select

Виберіть властивість Items комбінованого списку у вікні Properties і клацніть на кнопці, яка з'явиться. Додайте наступні елементи в редактор String Colleсtiоn і клацніть на кнопці ОК, щоб підтвердити введення даних:

• Black;

• Blue;

• Gold;

• Green;

• Red;

• Yellow.

Натисніть <F5>, щоб запустити проект. Клацніть на стрілці в правій частині комбінованого списку, з'явиться випадний список:

Потім спробуйте ввести текст Magenta. Visual Basic дозволить вам це зробити. Насправді, ви можете ввести будь-який текст, який захочете. Проте часто потрібне обмежити введення користувача лише тими значеннями, які присутні в списку.

Для цього необхідно змінити властивість комбінованого списку DropDownStyle. Закрийте форму, щоб зупинити роботу проекту, і поміняйте властивість DropDownStyle комбінованого списку на DropDownList. Натисніть <F5>, щоб знову запустити проект і спробуйте надрукувати текст в текстовому полі комбінованого списку. Ви не можете це зробити, але якщо ви введете символ, з якого починається один з пунктів списку, то буде вибраний найближчий відповідний елемент списку.

Клацання на текстовому полі комбінованого списку відкриває список так само, як і при клацанні на стрілці в його правій частині. Якщо вибрана властивість DropDownList, то користувачеву не дозволяється вводити будь-який текст, і він винен вибрати елементи із списку.

Зручна робота із списком. У більшості реальних проектів вам потрібно не просто щось вибрати із списку, але і мати можливості для зручної зміни списку: додавання, видалення, зміни і перестановки його елементів.

Створимо проект. Розмістимо на формі простий список або ComboBox і 4 кнопки для різноманітної роботи з його списком. Ось функції кнопок:

  • Кнопка «Видалення» видаляє вибраний елемент із списку

  • Кнопка «Додати» додає вміст текстового поля списку в список (зручно для швидкого внесення доповнень до списку

  • Кнопка «Переставити в кінець» переставляє вибраний елемент в кінець списку (зручно для довільного пересортовування списку)

  • Кнопка «Виправити» замінює вибраний елемент вмістом текстового поля списку (зручно для виправлень в написанні елементу)

Ось так виглядає код створюваного додатка

Dim Номер As Integer 'Номер вибраного елементу в списку

Private Sub Видалення(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Видалення.Click

ComboBox1.Items.Remove(ComboBox1.SelectedItem)

End Sub

Private Sub Додати(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Додати.Click

If ComboBox1.Text <> "" Then ComboBox1.Items.Add(ComboBox1.Text) 'Якщо в полі не порожньо, то ...

End Sub

Private Sub Переставити(ByVal sender As System.Object, ByVal e As System.EventArgs) _

Handles Переставити.Click

ComboBox1.Items.Add(ComboBox1.Text) Спочатку добавляємо в кінець,

ComboBox1.Items.Remove(ComboBox1.SelectedItem) 'а потім видаляємо з попереднього місця

End Sub

Private Sub Виправити(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Виправити.Click

ComboBox1.Items.RemoveAt(Номер) 'Спочатку видаляємо старий елемент,

ComboBox1.Items.Insert(Номер, ComboBox1.Text) 'а потім на його месце вставляєм текст із поля

End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) _

Handles ComboBox1.SelectedIndexChanged

Номер = ComboBox1.SelectedIndex

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]