|
Пример ListDemoDate: 2015-10-07; view: 325. Свойство NewIndex Свойство SelCount Свойство Selected Selected представляет собой массив, подобный свойству List. Его элементы могут иметь значения True или False в зависимости от состояния соответствующего пункта списка. Если пункт списка выбран, значение свойства Selected данного пункта равно True. В противном случае значение свойства равно False. Поскольку отсутствуют средства, позволяющие получить сразу все индексы при выборке нескольких пунктов, необходимо проверить все элементы массива Selected. Отображает число выбранных пунктов элемента ListBox, если значение свойства MultiSelect установлено равным 1 (Simple) или 2 (Extended). Обычно это свойство используют вместе с массивом Selected для работы с выбранными пунктами элемента. Если элемент ListBox допускает выборку множества пунктов, рекомендуем применить в списке стиль Checkbox (Флажок). Чтобы пункты списка отмечались флажками (рис.5.4.2), установите значение свойства Style равным 1. Возвращает индекс последнего пункта, включенного в список элемента ListBox. Обычно это свойство используют вместе со свойством ItemData, которое рассматривается в пункте «Индексирование с помощью элемента ListBox». Приложение 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 для хранения списка ключей при организации быстрого поиска в массивах или файлах с произвольным доступом.
|