我用下面的语句删除Listview中的项目:
For i = 1 To ListView1.ListItems.Count
If ListView1.ListItems(i).Selected Then
ListView1.ListItems.Remove (i)
End If
Next i
但程序出错,提示“索引超出边界”。
请问怎样书写语句才能正确删除?
...全文
1959打赏收藏
如何删除Listview的项?
我用下面的语句删除Listview中的项目: For i = 1 To ListView1.ListItems.Count If ListView1.ListItems(i).Selected Then ListView1.ListItems.Remove (i) End If Next i 但程序出错,提示“索引超出边界”。 请问怎样书写语句才能正确删除?
'因为你删除了某项后,ListItems的索引相应的就发生了变化
'比如你有100项,可你已移除了30项,但你的循环却要从1 到100执行100次,等执行到71时就出错了!因为已经没有70以后的索引了
'最简单的解决方法是 "For x = ListView1.ListItems.Count To 1 Step -1"
'修改如下:
Dim x As Integer
For x = ListView1.ListItems.Count To 1 Step -1
If ListView1.ListItems(x).Checked = True Then
ListView1.ListItems.Remove (x)
End If
Next