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有错误 展开
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有错误 展开
4个回答
展开全部
这个原因主要是因为你的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,这样不会错
正确的修改是:For i =List2.ListCount - 1 to 0 step-1,这样不会错
展开全部
'试一下,你的代码没看,我直接给你写的 :
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Command1_Click()
For i = 0 To List2.ListCount - 1
List1.AddItem List2.ListIndex
List2.RemoveItem i
Next i
End Sub
For i = 0 To List2.ListCount - 1
List1.AddItem List2.ListIndex
List2.RemoveItem i
Next i
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把这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个数会变小
For i = List2.ListCount - 1 To 0 Step -1
List1.AddItem List2.List(i) '这里用listI(i),不用text
即可 ,因为删除后,list个数会变小
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询