Работа с окном списка ListBox
End Sub
End Sub
End Sub
Private Sub CBP_Click() 'добавление элемента в список
Combo1.AddItem Combo1.Text, Combo1.ListCount 'при нажатии
Combo1.ItemData(Combo1.ListCount - 1) =<значение> 'кнопки "+"
Private Sub Combo1_KeyPress(KeyAscii As Integer) 'добавление
If KeyAscii = 13 Then 'элемента в список
Combo1.AddItem Combo1.Text, Combo1.ListCount 'при нажатии
Combo1.ItemData(Combo1.ListCount - 1) = <значение> 'клавиши
End If 'Enter
Чтение данных из окна списка ListBox, имеющего свойство MultySelect=false, выполняется так же, как и чтение данных из объекта ComboBox. Аналогичная процедура для окна ListBox со свойством
Рис. 4.25. Объект ListBox со свойством MultySelect=true | MultySelect=true (рис. 4.26), связана с чтением свойства Selected. Это свойство является массивом данных типа boolean. Простейшим способом чтения свойства Selected является вызов свойства как функции: имя_окна.Selected(индекс) или имя_переменной= имя_окна.Selected(индекс) Первый вариант можно применять в различных списках вывода, параметров процедур и аргументов |
функций, второй – для переписи состояний элементов списка в глобальные или локальные данные.
Рис. 4.26. Форма для изменения списка окна ListBox | Если необходимо изменять список окна ListBox, то приходится создавать форму подобную рис. 4.26. Текстовое окно TextBox на форме служит для ввода нового элемента списка с клавиатуры, кнопки "+" и "-" – для добавления нового элемента и удаления выбранного элемента списка. Изменение списка окна ListBox выполняется так же, как и изменение списка окна ComboBox. Текст программы, выполняющей изменение списка, |
приведен на рис. 4.27. При написании программы предполагалось, что возможным сигналом добавления элемента в список является нажатие клавиши Enter при активном окне TextBox. Объектам на форме рис. 4.26 присвоены следующие имена:
· СВМ – командной кнопке "-";
· СВР – командной кнопке "+";
· List1 – окну со списком ListBox;
· TB – текстовому окну TextBox.
Private Sub CBM_Click() ' обработка нажатия кнопки "-" List1.RemoveItem (List1.ListIndex)' удаление элемента списка End Sub Private Sub CBP_Click() 'обработка нажатия кнопки "+" List1.AddItem TB.Text, List1.ListCount'изменение свойства List List1.ItemData(List1.ListCount - 1) = <число>'изменение свойства ItemData End Sub Private Sub TB_KeyPress(KeyAscii As Integer)'обработка нажатия Enter If KeyAscii = 13 Then List1.AddItem TB.Text, List1.ListCount'изменение свойства List List1.ItemData(List1.ListCount - 1) = <число>'изменение свойства ItemData End If End Sub |
Рис. 4.27. Текст программы, изменяющий список окна ListBox
Подводя итоги исследования работы с объектами ComboBox и ListBox, можно сделать следующие выводы:
1. Окна ComboBox и ListBox содержат списки в свойстве List и соответствующие им произвольные числа в свойстве ItemData, количество элементов списка находится в свойстве ListCount. Следует иметь в виду, что значение ListCount равно числу элементов списка, а нумерация элементов начинается с нуля. 2. Номер выбранного элемента находится в свойстве ListIndex, выбранный элемент списка – в свойстве Text. Если окно ListBox имеет свойство MultySelect=true, то список состояний окон выбора, встроенных в окно ListBox, находится в свойстве Selected, которое может рассматриваться как обычный массив типа Boolean. Состояние любого окна выбора можно получить командой Selected(номер), которую можно рассматривать как вызов одноименной функции с аргументом равным номеру элемента. 3. Добавление элемента в список выполняется методом AddItem, а удаление – методом RemoveItem,причем при добавлении элемента в список свойство ItemData корректируется вручную, а при удалении элемента – автоматически. |