Работа с окном ComboBox
Работа со списком и окном с раскрывающимся списком
При применении окон списков и окон с раскрывающимися списками приходится решать две основных проблемы:
· как получить информацию о выбранном (или выбранных) элементе;
· как изменить список.
Описанные ниже приемы пригодны для изменения списков указанных окон программным путем как с вводом, так и без ввода данных с клавиатуры.
Содержимое списка окна, как правило, создается во время проектирования формы. Объект имеет три стиля (свойство Style), из них только нулевой и первый позволяют менять содержимое списка окна, хранящееся в свойстве List.
Получить информацию из окна ComboBox очень просто, достаточно прочитать свойство Text оператором присваивания:
Имя_переменной =имя_объекта.Text
Дополнительную информацию можно получить, применив свойства ListIndexиItemData, т.к. первое из них содержит номер выбранного элемента, а второе – массив чисел, поставленных программистом в соответствие списку List:
Имя_переменной = имя_объекта.ItemData(имя_объекта.ListIndex).
Пример получения полной информации из окна приведен на рис. 4.23. В этом примере переменные a и b являются приемниками информации, а окну ComboBox присвоено имя Combo1. Предполагается, что в свойство-массив ItemData записаны целые числа.
Dim a as string : Dim b as integer . . . a = Combo1.Text b=Combo1.ItemData(Combo1.ListIndex) . . . |
Рис. 4.23. Чтение информации из окна ComboBox
Несколько труднее происходит изменение массива строк списка (свойство List) и поставленного ему в соответствие массива чисел в свойстве
Рис. 4.24. Форма для работы со списком окна ComboBox | ItemData. Для управления списком проще всего применять две кнопки (рис. 4.24). Кнопка "+" добавляет пункт в список List, кнопка "-" удаляет пункт из списка. В качестве сигнала "добавить пункт в список" можно применить нажатие клавиши Enter. Существенным моментом является необходимость добавлять вручную в массив ItemData число, соответствующее новому пункту |
списка List. При удалении пункта из списка List свойство ItemData корректируется автоматически. Текст программы, изменяющей список окна, приведен ниже.
Private Sub CBM_Click() 'удаление элемента из списка
Combo1.RemoveItem (Combo1.ListIndex) 'при нажатии кнопки "-"