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 < List1.ListCount - 1 Then ' 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 < _ List1.ListCount - 1)End Sub
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