Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB4,VB5,VB6
Expertise: Intermediate
Feb 19, 2000

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 If
End Sub

Private 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 If
End Sub

Private 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_Click
End Sub

Francesco Balena
 
Comment and Contribute

 

 

 

 

 


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

 

 

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