vb二级上机问题:list的移除添加问题

把list2选中的添加到list1,同时选中的在list2中被移除PrivateSubCommand1_Click()Fori=0ToList2.ListCount-1I... 把list2选中的添加到list1,同时选中的在list2中被移除
Private Sub Command1_Click()
For i = 0 To List2.ListCount - 1
If List2.Selected(i) = True Then
List1.AddItem List2.Text
List2.RemoveItem i
End If
Next i
End Sub
把List2.RemoveItem i换成List2.RemoveItem List2.ListIndex也是一样错误
提示If List2.Selected(i) = True Then有错误
展开
 我来答
anankid
2012-03-19 · TA获得超过2046个赞
知道小有建树答主
回答量:1174
采纳率:0%
帮助的人:839万
展开全部
这个原因主要是因为你的list2里的条目在不断的移除,它的listcount在变小,但是你的循环范围For i = 0 To List2.ListCount - 1这个里面的listcount不会根据你的数目的变化而变化,它从一开始就注定了,如果一开始条目是10,那么它的循环范围就一直是0 to 9 ,但是由于你的最后条目被大量移除例如只剩5条,那么你在i=6的时候运行List2.Selected(5) 的时候就出错了,因为已经不存在第六条了。
正确的修改是:For i =List2.ListCount - 1 to 0 step-1,这样不会错
归萱pN
2012-03-19 · TA获得超过989个赞
知道大有可为答主
回答量:1068
采纳率:0%
帮助的人:1479万
展开全部
'试一下,你的代码没看,我直接给你写的 :
Private Sub Command1_Click()
If List2.ListCount > 0 Then
If List2.ListIndex >= 0 Then
List1.AddItem List2.List(List2.ListIndex)
List2.RemoveItem (List2.ListIndex)
End If
End If
End Sub
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 10
List2.AddItem i
Next
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx001z7d53
2012-03-19 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:5443万
展开全部
Private Sub Command1_Click()
For i = 0 To List2.ListCount - 1
List1.AddItem List2.ListIndex
List2.RemoveItem i
Next i
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瑞安阿芳
2012-03-19 · TA获得超过1946个赞
知道小有建树答主
回答量:749
采纳率:100%
帮助的人:885万
展开全部
把这For i = 0 To List2.ListCount - 1句改成
For i = List2.ListCount - 1 To 0 Step -1
List1.AddItem List2.List(i) '这里用listI(i),不用text

即可 ,因为删除后,list个数会变小
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式