Дата публикации статьи: 08.07.2003 00:00

Очень удобно, когда при вводе первых букв слова в текстбокс, в листбоксе, в котором находятся некие слова, выделяется слово, содержащее эти буквы. Пример: хелп в виндах и т.п.

Так вот - давайте это сделаем (тем более, что это очень просто). Создаем форму, на нее натягиваем Text1 и List1. Размещаем текстбокс ровненько над листбоксом (можно еще и что-то сделать для большей красоты). И пишем код:

Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Integer, ByVal wParam As String, lParam As Any) As Long
Const LB_FINDSTRING = &H18F
Private Sub Form_Load()
With List1
.Clear
.AddItem "Yellow Submarine"
.AddItem "Sgt. Peppers Lonely Hearts Club Band"
.AddItem "Imagine"
.AddItem "Instant Karma"
.AddItem "Girll"
.AddItem "Mind Games"
.AddItem "Hey Jude"
.AddItem "Yesterday"
End With
End Sub
Private Sub Text1_Change()
List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, Text1, Text1.Text)
End Sub

Вот и все. Это довольно известный способ. Но если кто - то не знает :)).