vb 问题,关于FOR循环 List2.RemoveItem (i)问题
错在哪里?为什么?PrivateSubCommand2_Click()Fori=0ToList2.ListCount-1IfList2.Selected(i)ThenLi...
错在哪里?为什么?
Private Sub Command2_Click()
For i = 0 To List2.ListCount - 1
If List2.Selected(i) Then
List2.RemoveItem (i)
End If
Next
End Sub 展开
Private Sub Command2_Click()
For i = 0 To List2.ListCount - 1
If List2.Selected(i) Then
List2.RemoveItem (i)
End If
Next
End Sub 展开
5个回答
展开全部
你意思是想删除选择的内容是么?楼上的只能用于单选删除,多选会出错。
应该这样:
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
应该这样:
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
展开全部
Private Sub Command1_Click()
List1.Clear
End Sub
方便快捷
List1.Clear
End Sub
方便快捷
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Do While List2.ListIndex <> -1
List2.RemoveItem(List2.ListIndex)
Loop
List2.RemoveItem(List2.ListIndex)
Loop
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
的确有问题
再看看别人怎么说的。
再看看别人怎么说的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
的确有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询