Вопрос
Как найти элемент 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 Сообщество Чайников
Контактная информация