在VB的ListView中删除多个表项的代码问题

2025-04-27 12:59:39
推荐回答(2个)
回答1:

你想想前者是从后向前移除
比如:有10项
从10开始向前操作,假设移除10,其他的项号还是存在的并且不变的

反之,从前向后操作.
假设要移除1,5,10
现在,当你先移除1以后,第10就没有了,并且原来的5也变成了4,再移除5的话,就是移除错了!!!!

回答2:

首先要纠正你的说法:

For i = lv.ListItems.Count To 1 Step -1
If lv.ListItems(i).Selected Then lv.ListItems.Remove i
Next
能实现删除多个表项”
其实For语句是有错的,应为:
For i = lv.ListItems.Count-1 To 0 Step -1
其次:
For i =0 To lv.ListItems.Count-1 (这里应加-1)
If lv.ListItems(i).Selected Then lv.ListItems.Remove i
Next
删除前面的项目后,后续的项目的序号会自动减小,因此,只要有一个项目被删除,必然导致最后一项的序号超出范围,所以应采用倒删法。