简体   繁体   中英

Deleting multiple or single items from list box

I have created a list box and at the moment I am trying to make it such that you can delete one item or multiple items using this code:

Private Sub Delbtn_Click(ByVal sender As Object, 
        ByVal e As System.EventArgs) Handles Delbtn.Click
    lstCountries.Items.Remove(lstCountries.SelectedItem)
    lstCountries.Items.Remove(lstCountries.SelectedItems)

End Sub

However when using this I am not able to delete more than one selection at a time. What is the best way to make it so that I can delete one or more than one selection?

First, make sure there are some things selected:

If lstCountries.SelectedItems.Count > 0 Then

    ' MUST loop backwards thru collections when removing
    ' or you will remove the wrong things, miss stuff and
    ' run out early
    For n As Integer = lstCountries.SelectedItems.Count - 1 To 0 Step -1
        ' remove the current selected item from items
        lstCountries.Items.Remove(lstCountries.SelectedItems(n))
    Next n
End if

There is also a SelectedIndicies Collection which would return a collection of integers of the items. If you iterate that, use .RemoveAt() but you still need to loop backwards.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM