【发布时间】:2021-08-23 11:04:39
【问题描述】:
美好的一天! 所以从 CheckedListBox 中删除所有勾选的条目
For Each item In CheckedListBox1.CheckedItems.OfType(Of String)().ToList()
CheckedListBox1.Items.Remove(item)
Next item
告诉我如何删除 CheckedListBox 中选中的条目?
在图片中,名称为 3 的记录被突出显示。是否有可能以及如何在不检查的情况下将其删除?
【问题讨论】:
-
真的吗?您知道您必须使用
CheckedItems集合来删除选中的项目,但您一生都无法弄清楚如何删除选中的项目?您还没有真正考虑到这一点,而且您几乎可以肯定还没有阅读该课程的文档。如果您还没有阅读相关文档,那么您还没有真正尝试过自己解决问题,所以现在提出问题还为时过早。 -
顺便说一句,虽然它会起作用,但你真的不应该在那里打电话给
OfType(Of String)。除非您按类型过滤,否则OfType会做不必要的工作。此外,您只需要Object引用,因此String是不必要的特定,如果您没有首先添加Strings将无法工作。请改用Cast(Of Object)。 -
@Jimi,我不确定你到底想告诉我什么。也许只是说你认为我的评论有问题。
OfType用于按类型过滤,但这里没有进行过滤。Cast用于将IEnumerable转换为IEnumerable(Of T),这正是这里正在做的,所以也正是这里应该使用的。如果项目为Strings,则转换为String类型将起作用,但它们被用作Objects,所以这就是所需的全部。实际上,如果项目不是Strings,那么OfType实际上会过滤掉所有CheckedItems。有什么不对? -
@jmcilhinney 没有正确或错误,只是信息。与 OfType 相关的工作在这里做了不必要的工作。 -- Cast 可以抛出,OfType 会跳过(被认为是更安全,但你可能想要抛出,所以,这取决于)。
标签: vb.net checkedlistbox