如何从列表框中删除所选项目

时间:2017-02-01 20:12:16

标签: vb.net listbox selecteditem visual-studio-2015

这是针对VS2015社区中的VB.NET 4.5项目。

我正尝试从列表框中删除某些选定的项目,但仅限于所选项目符合条件。我找到了很多关于如何删除所选项目的示例。但是没有任何条件适用于嵌套在循环中的条件通过选定的项目(至少,我无法让示例与我正在尝试做的事情一起工作......)

这是我的代码:

    Dim somecondition As Boolean = True
    Dim folder As String
    For i As Integer = 0 To lstBoxFoldersBackingUp.SelectedItems.Count - 1

        If somecondition = True Then
            folder = lstBoxFoldersBackingUp.SelectedItems.Item(i)
            Console.WriteLine("folder: " & folder)
            lstBoxFoldersBackingUp.SelectedItems.Remove(lstBoxFoldersBackingUp.SelectedItems.Item(i))
        End If
    Next

控制台输出正确显示当前迭代项目的文本,但我无法使Remove()工作。现在代码,我得到控制台输出,但列表框不会改变。

2 个答案:

答案 0 :(得分:6)

删除项目会更改项目的索引位置。有很多方法,但是从你的代码中,尝试向后迭代以避免这个问题。您还应该从Items集合中删除该项目,而不是SelectedItems集合:

For i As Integer = lstBoxFoldersBackingUp.SelectedItems.Count - 1 To 0 Step -1
  If somecondition = True Then
    folder = lstBoxFoldersBackingUp.SelectedItems.Item(i)
    Console.WriteLine("folder: " & folder)              
    lstBoxFoldersBackingUp.Items.Remove(lstBoxFoldersBackingUp.SelectedItems(i))
  End If
Next

答案 1 :(得分:0)

您可以简单地使用它来从列表框中删除选定的项目 ListBox1.Items.Remove(ListBox1.SelectedItem)

我希望这会有所帮助。