Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB4/32,VB5,VB6
Expertise: Intermediate
Nov 4, 2000

ListBoxSelectRange - Select or unselect a range of elements in a ListBox

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
    hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
    lParam As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _
    Any, dest As Any, ByVal numBytes As Long)

' Select or deselect all the ListBox items in the specified range
' use newState = True to select, or False to deselect
' it affects all items if the last two arguments are omitted

Sub ListBoxSelectRange (lb As ListBox, ByVal newState As Boolean, _
    Optional firstItem As Long, Optional lastItem As Long = -1)
    Dim lParam As Long

    ' account for omitted lastItem argument.
    If lastItem < 0 Then lastItem = lb.ListCount - 1

    ' lParam must contain the first item's index in its low-order word
    ' and the last item's index in its high-order word.
    ' We need this method to avoid overflow.
    CopyMemory lParam, firstItem, 2
    CopyMemory ByVal VarPtr(lParam) + 2, lastItem, 2

    SendMessage lb.hwnd, LB_SELITEMRANGE, newState, ByVal lParam
End Sub
Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date