|
Индексирование с помощью элемента ListBoxDate: 2015-10-07; view: 355. Ключевым свойством элемента ListBox является свойство ItemData - массив, подобный массиву List. Однако вместо строк, появляющихся в элементе, он содержит числа. Каждый пункт, отображаемый элементом ListBox. состоит из двух частей: строки задаваемой свойством List(i) и числа, задаваемого свойством ItemData(i) (здесь i- индекс пункта списка). Свойство ItemData - это значение типа Long, которое может сохранять, числовую информацию любого типа, относящуюся к пункту списка, но не отображаемую в списке. Так в массиве List() можно сохранять список имен сотрудников, а в массиве ItemData() – данные об их зарплате. Доступ к записям о каждом сотруднике можно получать по имени, а зарплату отображать в элементе TextBox, помещенном на ту же форму. Однако истинная ценность свойства ItemData состоит не в хранении дополнительной информации, относящейся к пункту. Действительно, единственного числа явно недостаточно для хранения существенной дополнительной информации. Предположим, необходимо поддерживать список имен и адресов. Хранить все эти записи в элементе ListBох непрактично: элемент должен быть слишком широким, чтобы вместить всю строку с именем, адресом, городом, номером телефона и т.д. Практичнее хранить в элементе ListBox имена, используя их как ключи для доступа к элементам массива, в котором хранится остальная информация. Каждая запись хранится в элементе массива, соответствующем одному из пунктов элемента ListBox. Если установить значение свойства ItemData равным индексу соответствующего элемента массива данных, то при необходимости можно получить немедленный доступ к записям массива. Этот подход применим и к файлам с произвольным доступом (значение свойства ItemData равно числу совпадающих записей). Такой подход демонстрируется в приложении KeyList.
|