Сообщение LB_FINDSTRING

Const LB_FINDSTRING = &H18F

Приложение посылает сообщение LB_FINDSTRING для нахождения первой строки в списке, начинающей с заданной строки.

Возвращаемое значение

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

Параметры

wParam
Задает индекс (отсчёт от 0) элемента, с которого начинается поиск. Когда поиск достигнет конца списка, то он продолжает искать с начала списка до выбранного элемента. Для поиска с начала списка используется значение -1
lParam
Строка поиска. Регистр символов не учитывается

Пример

' смотри также пример listbox.zip

'Режим автозаполнения
'Начинайте печатать слово
'Например, арбуз

Private Sub Form_Load()
  List1.AddItem "Арбуз"
  List1.AddItem "Банан"
  List1.AddItem "Яблоко"
  List1.AddItem "Персик"
  List1.AddItem "Ананас"
  List1.AddItem "Авокадо"
End Sub

Private Sub Text1_Change()
  Dim pos As Long
  List1.ListIndex = SendMessage(List1.hWnd, _
    LB_FINDSTRING, -1, ByVal CStr(Text1.Text))
  If List1.ListIndex = -1 Then
    pos = Text1.SelStart
  Else
    pos = Text1.SelStart
    Text1.Text = List1
    Text1.SelStart = pos
    Text1.SelLength = Len(Text1.Text) - pos
 End If
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
  On Error Resume Next
  If KeyCode = 8 Then ' Backspace
    If Text1.SelLength <> 0 Then
      Text1.Text = Mid$(Text1, 1, Text1.SelStart - 1)
      KeyCode = 0
    End If
  ElseIf KeyCode = 46 Then ' Del
     If Text1.SelLength <> 0 And _
       Text1.SelStart <> 0 Then
       KeyCode = 0
    End If
  End If
End Sub

Смотри также

LB_ADDSTRING, LB_INSERTSTRING, LB_SELECTSTRING

Категория

Списки