Елемент ListBox надають користувачеві вибрати значення зі списку даних. Окремі пункти елемента ListBox вибираються за допомогою миші. Додавати пункти в елемент ListBox можна за допомогою програмного коду, або встановлюючи значення властивість List у вікні властивостей. Кожен пункт слід вводити окремим рядком, натискаючи комбінацію клавіш Ctrl + Enter. Завершивши введення пунктів, натисніть клавішу Enter, і вони відобразяться в елементі ListBox на форме.В цій статті будуть розглянуті властивості і методи елемента ListBox.
Деякі властивості елементів ListBox можна встановити тільки в режимі проектування. Саме вони визначають функціональні можливості елемента, які не можна змінювати під час роботи програми.
Визначає метод вибірки елементів списку. Його значення задається при конструюванні. Під час роботи програми значення властивості є тільки для читання. Значення властивості MultiSelect визначає, чи може користувач вибрати кілька пунктів списку і метод вибірки.
0 - Вибір декількох пунктів заборонений (за замовчуванням)
1 - Простий вибір декількох пунктів. Клацання кнопкою миші (або натискання клавіші пробілу) вибирає або скасовує пункт списку. Для переміщення фокусу на інший пункт за допомогою кнопок зі стрілкою
За допомогою програми в списки елементів ListBox можна вставляти нові пункти, але програміст теж повинен подбати про це. Якщо необхідно, щоб пункти завжди були розсортовані, встановіть значення властивості Sorted рівним True. Зробити це можна тільки під час проектування: під час виконання воно є тільки для читання. Елемент ListBox є текстовим елементом, т. Е. Сортувати числові дані він не може. Щоб використовувати елемент ListBox для сортування чисел, перш за все, відформатуйте їх, додавши нулі на початку кожного числа. Так, число 10 завжди буде відображатися перед числом 5, оскільки рядок "10" менше рядка "5" (вона починається з одиниці). Якщо ж числа форматувати як "010" і "005", то сортування буде коректна. Пункти в елементі ListBox сортуються за зростанням з урахуванням регістру. Більш того, стандартні установки змінити неможливо. Елементи "aa", "aA", "AA," Aa "," Ba "і" BA "упорядковано наступним чином." AA "" Aa "" aA "" aa "" BA "Ba" Як бачите, символи верхнього регістру з'являються попереду тих же символів нижнього. Всі слова, що починаються з літери В, з'являються після слів, що починаються з А, але перед словами, що починаються з літери С. В межах групи слів, що починаються з літери В, спочатку відображаються слова, що починаються з літери В, а слідом за ними йдуть слова , що починаються з літери b.
Визначає зовнішній вигляд елемента. Має два значення: 1 - Standard і 2 - Checkbox. Зверніть увагу: лівий списку не відсортований, а правий - впорядкований.
Методи елемента ListBox
Для управління елементом ListBox з програми необхідно мати можливість:
• додавати пункти в список;
• видаляти пункти зі списку;
• вибирати окремі пункти списку.
Щоб додавати пункти в список, використовується метод Additem. Він повинен виглядати так:
List1.Additem item, index
Параметр item - це рядок, що додається до списку, a index - її порядковий номер. Порядковий номер першого елемента списку дорівнює нулю. Аргумент index необов'язковий. Якщо його опустити, рядок додається в кінець списку. Якщо значення властивості Sorted елемента встановлено рівним True, то пункт вставляється у відповідне місце списку, незалежно від значення аргументу index.
Щоб видалити пункт зі списку, знайдіть його положення (index) в списку: index необхідний методу RemoveItem.
Параметр index вказує на порядковий номер видаляється пункту і є обов'язковим. Наступний оператор видаляє пункт з початку списку. List1.Removeltem ()
Видаляє зі списку елемента всі пункти. Синтаксис методу нескладний. List1.Clear Щоб отримати доступ до окремих пунктів, можна використовувати кілька властивостей елемента ListBox. Для видалення пункту зі списку необхідно знати його порядковий номер, але в даному випадку цей аргумент методу RemoveItem використовується рідко. Як правило, видаляється пункт вибирає користувач або видаляються пункти вибирають з програмного коду за їх значенням. Деякі властивості елемента ListBox дозволяють зчитувати пункти з програмного коду (ці властивості розглядаються).
Повертає число елементів списку. Доступ до них можна отримати за допомогою значень індексів в діапазоні від 0 до ListCount-1.
For item = List1.ListCount - 1 to 0 Step - 1
If List1.List (item) = "" Then
List1.RemoveItem item
End If
Next
Зверніть увагу: цей цикл сканує елементи масиву List () з кінця. Розумієте, чому? При видаленні кожного пункту довжина списку зменшується на 1. Якщо сканувати список з початку, число ітерацій перевищить число пунктів списку, що веде до помилки виконання. Якщо ж сканувати список з кінця, ця помилка виключається.
ListIndex є індекс обраного пункту списку. При вибірці декількох пунктів ListIndex представляє індекс останнього обраного пункту. Якщо ви не вкажете один елемент, значення .ListIndex = -1. Це властивість можна використовувати для вибору або видалення конкретних пунктів. Так, наступний оператор видаляє вибраний пункт елемента List 1: List1.RemoveItem List1.ListIndex Для виділення певного елемента використовуйте List1.ListIndex = 2 Якщо при виклику методу RemoveItem жоден пункт списку знято, значення властивості ListIndex негативно. Спроби видалити пункт з негативним індексом призводять до помилки виконання. Щоб уникнути цього, перевірте значення властивості ListIndex.
If List1.ListIndex> = 0 Then
List1.RemoveItem List1.ListIndex
End If
Після видалення пункту індекси наступних пунктів відповідно перебудовуються.
Selected представляє собою масив, подібний властивості List. Його елементи можуть мати значення True або False залежно від стану відповідного пункту списку. Якщо пункт списку обраний, значення властивості Selected даного пункту одно True. В іншому випадку значення властивості рівне False. Оскільки відсутні кошти, що дозволяють отримати одразу все індекси при вибірці декількох пунктів, необхідно перевірити всі елементи масиву Selected (трохи пізніше буде наведено відповідний приклад).
Повертає індекс останнього пункту включеного до списку елемента ListBox. Зазвичай це властивість використовують разом з властивістю ItemData, який розглядається в параграфі "Індексування за допомогою елемента ListBox".
Індексування за допомогою елемента ListBox