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
展开
 我来答
whiphone
2008-07-29 · 超过29用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:26.3万
展开全部
你意思是想删除选择的内容是么?楼上的只能用于单选删除,多选会出错。

应该这样:
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
湘湖泛舟
2008-07-29 · TA获得超过1076个赞
知道大有可为答主
回答量:833
采纳率:0%
帮助的人:887万
展开全部
Private Sub Command1_Click()
List1.Clear
End Sub

方便快捷
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fyeat111
2008-07-29 · TA获得超过993个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:378万
展开全部
Do While List2.ListIndex <> -1
List2.RemoveItem(List2.ListIndex)
Loop
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不蕴逯平卉
2019-11-25 · TA获得超过5466个赞
知道大有可为答主
回答量:3130
采纳率:33%
帮助的人:220万
展开全部
的确有问题
再看看别人怎么说的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GIDIN
2008-07-29 · TA获得超过410个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:240万
展开全部
的确有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式