vb.net - 如何从列表框中删除选定的项目

标签 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() 工作。就像现在的代码一样,我得到了控制台输出,但列表框没有改变。

最佳答案

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

关于vb.net - 如何从列表框中删除选定的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41988826/

相关文章:

c# - 如何将列表框中的所选项目添加到列表 <string> 在 C# 中

c# - 创建图像列表框?

binding - MVVM DataGrid SelectedItem 绑定(bind)未更新

无需安装的 VB.net 应用程序

c# - 尝试使用 Autodesk.AutoCAD.DatabaseService 从 DWG 中读取数据 我需要引用什么 DLL?

Python tkinter spinbox 和 optionmenu 之间的区别

javascript - 如何在onload或dom准备好后调用带参数的函数?

xaml - WPF/MVVM 将所选项目保存在 viewmodel/model

asp.net - 如何让函数在 VB.net 中运行回调

vb.net - 在 VB.NET 中对对象列表进行排序