Перемещение в положение списка множественного выбора - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть список с несколькими вариантами выбора, который я хотел бы сделать доступным для поиска. Если искомое значение найдено в списке, я бы хотел прокрутить эту позицию, но не выбирать ее. Это возможно? Код для поиска: -

With lstComm
    For i = 0 To .ListCount - 1
        If .Column(6, i) = txtSearch.Value Then

        End If
    Next i
End With

... но я не уверен, как завершить прокрутку.

1 Ответ

0 голосов
/ 14 ноября 2018

Это должно работать нормально:

Dim index As Long
With lstComm
    Dim match As Boolean
    For index = 0 To .ListCount - 1
        If .Column(1, index) = txtSearch.Value Then
            match = True
            Exit For
        End If
    Next

    If Not match Then Exit Sub

    Dim isSelected As Boolean
    isSelected = .Selected(index)

    .Selected(index) = True
    .Selected(index) = isSelected
End With

Возвращает искомый элемент списка.

Если элемент не был найден, он существует.

В противном случае он сохраняеттекущее состояние выбора этого элемента, выбирает его для размещения списка и восстанавливает сохраненное состояние элемента.

...