当前位置 : 主页 > 编程语言 > c语言 >

vb.net – 如何从列表框中删除所选项目

来源:互联网 收集:自由互联 发布时间:2021-06-24
这是针对VS2015社区中的VB.NET 4.5项目. 我试图从列表框中删除某些选定的项目,但仅限于所选项目符合条件.我找到了很多关于如何删除所选项目的示例.但是没有任何东西适用于嵌套在循环
这是针对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()工作.由于代码现在,我得到控制台输出,但列表框不会改变.

删除项目会更改项目的索引位置.有很多方法,但是从你的代码中,尝试向后迭代以避免这个问题.您还应该从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
网友评论