我有一個包含幾千項的列表框。如果我想獲得第一場比賽,以下由@AngryHacker in this threat給出的代碼很適合。但有時我有多個項目具有相同的數據。所以,我想要得到所有的比賽,怎麼做?VB6:如何使用API搜索列表框並獲取所有匹配?
呵呵,其實,它是這樣的: 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
只是出於好奇,爲什麼你會在列表框中有很多項目?該列表框用於向用戶提供可供選擇的選項,並且通過數千個滾動列表框似乎是一個非常漫長的過程。 (首先允許重複也不是一個明智的用戶界面決定,因爲如果你有兩個選擇是相同的,你不能確定他們選擇了哪一個,如果你不需要告訴他們,那麼你不需要在第一位顯示它們。) – 2013-05-01 21:00:54
好的,列表框對於太多的項目來說太糟糕了,但是我還沒有找到任何其他解決方案,因爲我使用的是vb6 。我想知道是否有替代列表框 – 2013-05-01 21:06:59
您仍然沒有回答他的問題。列表框是用於用戶界面的。爲什麼你需要在你的列表框中有成千上萬的項目? – 2013-05-01 21:10:17