Читайте также:
|
|
Приложение ListDemo (рис 5.4.3) демонстрирует основные операции с элементом ListBox.
Рис. 5.4.3. Приложение ListDemo демонстрирует большинство операций с элементом ListBox
На форму помещены два элемента ListBox, работающие по-разному. Конфигурация первого элемента стандартна, одновременно может быть выбран только один пункт, а новые пункты включаются в конец списка. Во втором же элементе значение свойства Sorted установлено равным True, значение свойства MultiSelect - 2 (Extended). Таким образом, пункты второго элемента всегда отсортированы, и пользователь может выбрать любое число пунктов (с помощью мыши, удерживая нажатыми клавиши Shift или Ctrl).
В коде приложения ListDemo реализован полный набор логических функций, необходимых при работе с программой управления элемента ListBox. Программный код позволяет:
§ добавлять и удалять пункты;
§ переносить пункты между списками;
§ управлять множеством выбранных пунктов;
§ поддерживать сортировку списков.
Кнопка Add New Element. (Включить в список). Использует функцию InputBox(), для приглашения пользователя выполнить ввод новой строки в списки элементов.
Фрагмент программы. Кнопки Add New Element
Private Sub Command5_Click()
Dim listItem As String
listItem = InputBox("Enter item to add to the list")
‘(Введите добавляемый в список элемент)
If Trim(listItem) <> "" Then
List1.AddItem listItem
End If
End Sub
Подпрограмма проверяет данные, введенные пользователем, не допуская ввод в список пустой строки. Программный код кнопки Clear List (Очистить список) удаляет все записи списка, вызывая метод Clear.
Кнопка Remove Selected Item(s). Программный код кнопки Remove Selected Item. (Удалить выбранный пункт) отличается от программного кода кнопки Remove Selected Items (Удалить выбранные пункты). В первом элементе ListBox можно выбрать только один пункт, а во втором - несколько. Как было уже сказано, удаляемый пункт сначала должен быть выбран.
Фрагмент программы. Кнопка Remove Selected Item.
Private Sub Command3_Click()
If List1.ListIndex > 0 Then
List1.RemoveItem List1.ListIndex
End If
End Sub
Программный код кнопки Remove Selected Items просматривает все пункты списка, а затем удаляет только выделенные.
Фрагмент программы. Кнопка Remove Selected Item
Private Sub Command4_Click()
Dim i As Integer
If List2.SelCount = 1 Then
List2.RemoveItem List2.ListIndex
ElseIf List2.SelCount > 1 Then
For i = List2.ListCount - 1 To 0 Step -1
If List2.Selected(i) Then
List2.RemoveItem i
End If
Next
End If
End Sub
В данном коде проверяется свойство SelCount, указывающее число выбранных пунктов. Если значение свойства SelCount равно единице, то программа удаляет пункт. Если же выбрано несколько пунктов, программа просматривает весь список и удаляет все пункты, у которых значение свойства Selected равно True. Обратите внимание: список просматривается с конца.
Фрагмент программы. Кнопка со стрелкой вправо
Private Sub Command1_Click()
If List1.ListIndex >= 0 Then
List2.AddItem List1.Text
List1.RemoveItem List1.ListIndex
End If
End Sub
Программный код кнопки со стрелкой влево проверяет значение свойства SelCount. Если в списке выбран единственный пункт, то он перемещается в другой список с помощью вышеуказанного кода. Если же выбрано несколько пунктов, программный код просматривает список начиная с конца, копируя и удаляя каждый выбранный пункт.
Фрагмент программы Кнопка со стрелкой влево
Private Sub Command2_Click()
Dim i As Integer
If List2.SelCount = 1 Then
List1.AddItem List2.Text
List2.RemoveItem List2.ListIndex
ElseIf List2.SelCount > 1 Then
For i = List2.ListCount - 1 To 0 Step -1
If List2.Selected(i) Then
List1.AddItem List2.List(i)
List2.RemoveItem i
End If
Next
End If
End Sub
Завершая обсуждение элемента ListBox, рассмотрим один полезный прием программирования: использование элемента ListBox для хранения списка ключей при организации быстрого поиска в массивах или файлах с произвольным доступом.
Дата добавления: 2015-10-26; просмотров: 130 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Список (Элемент ListBox) | | | Проект KeyList |