数千のアイテムを含むリストボックスがあります。この脅威で@AngryHackerによって提供された以下のコードは、最初の一致を取得したい場合に最適です。しかし、同じデータを持つ複数のアイテムがある場合があります。それで、すべての試合を取得したいのですが、どうすればよいですか?
ああ、実際には、次のようなものです: aa4 sds aa5 aa6 fdf dsf
リストから「aa」で始まる項目のインデックスを取得したい
Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As _
Integer, ByVal lParam As Any) As Long
'constants for searching the ListBox
Private Const LB_FINDSTRINGEXACT = &H1A2
Private Const LB_FINDSTRING = &H18F
'function to get find an item in the Listbox
Public Function GetListBoxIndex(hWnd As Long, SearchKey As String, Optional FindExactMatch As Boolean = True) As Long
If FindExactMatch Then
GetListBoxIndex = SendMessage(hWnd, LB_FINDSTRINGEXACT, -1, ByVal SearchKey)
Else
GetListBoxIndex = SendMessage(hWnd, LB_FINDSTRING, -1, ByVal SearchKey)
End If
End Function