Microsoft Developer Network > Программирование в Microsoft Visual Basic > Интерфейс с пользователем > Приемы работы с элементами управления > ListBox

Совет 234. Используйте свойство ItemData элемента управления ListBox для хранения идентификаторов

Часто при заполнении элемента управления ListBox информацией из базы данных бывает необходимо, чтобы этот компонент не только выводил описания элементов базы данных, но и хранил некоторые ключевые значения. Например, если окно списка содержит имена сотрудников, наверное, будет полезно хранить здесь также их персональные идентификаторы. В том случае, если вы используете числовые идентификаторы, VB предоставляет возможность осуществить это с помощью свойства ItemData компонента ListBox, которое позволяет хранить дополнительное число для каждого элемента списка. Проиллюстрируем это на таком примере. Поместите окно списка на стандартную форму и введите следующий код:

Листинг 1.

Private Sub Form_Load()
  ' Заполнение списка и массива ItemData
  ' соответствующими элементами
  With List1
    .AddItem "Владимир Николаев"
    .ItemData(List1.NewIndex) = 42310
    .AddItem "Максим Сергеев"
    .ItemData(List1.NewIndex) = 52855
    .AddItem "Михаил Смирнов"
    .ItemData(List1.NewIndex) = 64932
    .AddItem "Анна Васильева"
    .ItemData(List1.NewIndex) = 39227
  End With
End Sub

Private Sub List1_Click()
  Dim Msg As String
  ' Вывод окна сообщения, содержащего
  ' идентификатор и имя сотрудника
  With List1
    Msg = .ItemData(.ListIndex) & " " & .List(.ListIndex)
    MsgBox Msg
  End With
End Sub