СообЧа > База Знаний > Программирование > Visual Basic > Формы и элементы управления

Вопрос

Как найти элемент ListBox по нескольким начальным буквам или первому слову?

Ответ

Private Sub Command1_Click()
Dim sStr as String, i as integer, n as Integer
sStr="слв" 'строковая переменная, содержащая
'кусок текста для поиска
For i=0 to List1.ListCount-1
If InStr(1,List1.List(i),sStr,vbTextCompare)>0 Then n=n+1
Next i
MsgBox "Указанная строка содержится в списке " & n & " раз."
End Sub

Иванов Виталий

В Declaration

Private Declare Function SendMessageByString _
Lib "user32" _
Alias "SendMessageA" (ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As String) As Long
Private Const LB_FINDSTRINGEXACT = &H1A2 As Long

Private Sub cmdFind_Click()
Dim lngRetVal As Long
lngRetVal = SendMessageByString(List1.hWnd, LB_FINDSTRINGEXACT, _
-1, "Строка для поиска")
List1.ListIndex = lngRetVal
End Sub

Правда, ищет целиком строку, но зато очень быстро.

Дмитрий Данелия



Copyright © 2000-2004 Сообщество Чайников
Контактная информация