这是针对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()工作。现在代码,我得到控制台输出,但列表框不会改变。
答案 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)
我希望这会有所帮助。