vb 问题,关于FOR循环 List2.RemoveItem (i)问题

2025-01-02 16:53:56
推荐回答(5个)
回答1:

你意思是想删除选择的内容是么?楼上的只能用于单选删除,多选会出错。

应该这样:
For i = 0 To List1.ListCount - 1
If List1.Selected(i) Then
List1.RemoveItem (i)
Exit Sub'加上这个
End If
Next

不用的话,你想想,listbox的item个数一开始是一定的,但是当你删除了其中一个,队列的个数就没有当初那么多了,到了后面的循环,listbox中根本没有这个位置了

例如:

本来是listbox个数5,i=0 to 4,删除一个之后个数是4,那意思就是只有0-3了,这个时候你用selected(4)去检测,当然会出错了。

这个是单选的删除方法。

多选就不需要exit sub

但是个数需要从后面开始上来

For i = List1.ListCount - 1 to 0 step -1 '倒数过来,自己想想吧~
If List1.Selected(i) Then
List1.RemoveItem (i)
End If
Next

回答2:

Private Sub Command1_Click()
List1.Clear
End Sub

方便快捷

回答3:

Do While List2.ListIndex <> -1
List2.RemoveItem(List2.ListIndex)
Loop

回答4:

的确有问题
再看看别人怎么说的。

回答5:

的确有问题