我在列表视图中有n个项目,如果我选中复选框,则应自动删除所有其他复选框。
代码
Dim count, idx As Integer
count = 0
For idx = 1 To lvwMedia.ListItems.count
If lvwMedia.ListItems(idx).Checked Then
lvwMedia.ListItems(idx).Checked = False
End If
Next
上面的代码正在运行,但是我必须编写上面的代码。
答案 0 :(得分:1)
自从我使用VB6以来已经有一段时间了,但也许会尝试使用ItemCheck事件。
编辑 - 此外,关于您的算法,我建议不要使用循环来取消检查所有内容。相反,当触发ItemCheck事件时,记录所选的当前项并取消选中最后选择的项。这样,每次你都不需要循环通过任何东西,而不是循环遍历任何东西,这样更快。
答案 1 :(得分:1)
ItemCheck事件就是您要找的。这是适当的代码。
Private Sub lvwMedia_ItemCheck(ByVal Item As MSComctlLib.ListItem)
Dim count, idx As Integer
Dim bln As Boolean
bln = lvwMedia.ListItems(Item.Index).Checked
count = 0
For idx = 1 To lvwMedia.ListItems.count
If lvwMedia.ListItems(idx).Checked Then
lvwMedia.ListItems(idx).Checked = False
End If
Next
lvwMedia.ListItems(Item.Index).Checked = bln
End Sub