Visual Basic List API Routines
SendMessage: Clearing or Selecting All Items in a List Box
Posted:   Wednesday January 8, 1997
Updated:   Monday December 26, 2011
Applies to:   VB4-32, VB5, VB6, and VB3, VB4-16 with appropriate declarations
Developed with:   VB5, Windows 95
OS restrictions:   None
Author:   VBnet - Randy Birch


SendMessage: Quickly Retrieve Multiple List Box Selections

This is a one-line API to select or deselect all items in a listbox.

With the controls listed below on the form, set the listbox MultiSelect property to either Simple or Extended. Run the app, and select several items. Click the Command1 to remove the selections, or Command2 to select all the listed items.

 BAS Module Code

 Form Code
Add a listbox and two command buttons to a form, along with the following code:

Option Explicit
' Copyright 1996-2011 VBnet/Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
' Distribution: You can freely use this code in your own
'               applications, but you may not reproduce 
'               or publish this code on any web site,
'               online service, or distribute as source 
'               on any media without express permission.
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 Const LB_SETSEL = &H185&

Sub Form_Load()

  'add this code to the form load to fill 
  'a list with some (15) of the system's
  'screen fonts.
   Dim i As Integer
   Dim max As Integer

   max = Screen.FontCount
   If max > 15 Then max = 15

   For i = 1 To max
     List1.AddItem Screen.Fonts(i)

   Command1.Caption = "Deselect All"
   Command2.Caption = "Select All"

End Sub

Private Sub Command1_Click()

    Call SendMessage(List1.hwnd, LB_SETSEL, False, ByVal -1)

End Sub

Private Sub Command2_Click()

    Call SendMessage(List1.hwnd, LB_SETSEL, True, ByVal -1)

End Sub
When lParam equals -1, setting wParam to False deselects all selections, and setting to True selects all entries. Setting lParam to any other number selects or deselects the index specified, as per the wParam setting.

This message can also be applied against a standard FileList box.


PayPal Link
Make payments with PayPal - it's fast, free and secure!


Copyright 1996-2011 VBnet and Randy Birch. All Rights Reserved.
Terms of Use  |  Your Privacy



Hit Counter