Const LB_FINDSTRING = &H18F
Приложение посылает сообщение LB_FINDSTRING для нахождения первой строки в списке, начинающей с заданной строки.
В успешном случае сообщение возвращает отсчитываемый от нуля индекс найденного элемента списка. В случае ошибки возвращается LB_ERR
' смотри также пример 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