روش جستجو سريع ListBox در VB‌

Amin_vb

Member
با استفاده از اين كد شما مي‌توانيد به جستجوي سريع ListBox ها در ويژوال بيسيك به وسيله API بپردازيد.

ابتدا كد زير را در يك ماژول تعريف نماييد.
کد:
Const LB_FINDSTRING = &H18F
Private Declare Function SendMessage Lib "User32" _
             Alias "SendMessageA" _
         (ByVal hWnd As Long, _
          ByVal wMsg As Integer, _
          ByVal wParam As Integer, _
          lParam As Any) As Long

سپس با كد زير مي‌توانيد جستجو را انجام دهيد البته در اين كد براي جستجو از يك جعبه متني استفاده گرديده است.
کد:
 Private Sub Text1_Change()
    List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, -1, _
                ByVal Text1.Text)
End Sub
'
'If you like that the found item list stays next to top of the ListBox control,
'you can try this:
Private Sub Text1_Change()
    '
    On Error Resume Next
    '
    List1.ListIndex = SendMessage(List1.hwnd, LB_FINDSTRING, -1, _
                ByVal Text1.Text)
    '
    List1.TopIndex = List1.ListIndex - 1
    '
End Sub

:roll: :roll: :roll: :p :p
 

جدیدترین ارسال ها

بالا