加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 07:18:53 所属栏目:百科 来源:网络整理
导读:这是针对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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读