devxlogo

Create ListBox controls with companion priority buttons

Create ListBox controls with companion priority buttons

You can easily create a ListBox control similar to the one found in the VB’s Project References dialog box, that lets you select multiple items and move them up and down using two companion buttons.

First of all, create a ListBox control (say, List1) and two CommandButton controls to its right, named cmdUp and cmdDown. Set the buttons’ Caption property to “Up” and “Down”, respectively. Finally, add this code to the form module:

Private Sub cmdUp_Click()    ' only if the first item isn't the current one    If List1.ListIndex >= 0 Then        ' add a duplicate item up in the listbox        List1.AddItem List1.Text, List1.ListIndex - 1        ' make it the current item        List1.ListIndex = List1.ListIndex - 2        ' delete the old occurrence of this item        List1.RemoveItem List1.ListIndex + 2    End IfEnd SubPrivate Sub cmdDown_Click()    ' only if the last item isn't the current one    If List1.ListIndex  -1 And List1.ListIndex ' add a duplicate item down in the listbox        List1.AddItem List1.Text, List1.ListIndex + 2        ' make it the current item        List1.ListIndex = List1.ListIndex + 2        ' delete the old occurrence of this item        List1.RemoveItem List1.ListIndex - 2    End IfEnd SubPrivate Sub List1_Click()    ' enable/disable buttons when the current item changes    cmdUp.Enabled = (List1.ListIndex > 0)    cmdDown.Enabled = (List1.ListIndex  -1 And List1.ListIndex 

If you want to enable and disable the two buttons as soon as you show the form, remember to set the ListBox's ListIndex property explicitly in the Form_Load event to a value other than -1, or manually call the List1_Click procedure:

Private Sub Form_Load()    ' because there is no current item (ListIndex = -1) you    ' must call the Click procedure manually    Call List1_ClickEnd Sub

devx-admin

Share the Post: