如何删除vb列表框所选项目?
list1中实现简单多选,把选择的多个项目同时转移到list2中,并且在list1中删除选中的项目。i=List1.ListIndexFori=0ToList1.List...
list1中实现简单多选,把选择的多个项目同时转移到list2中,并且在list1中删除选中的项目。
i = List1.ListIndex
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then List2.AddItem List1.List(i)
Next i
请问删除选中项目要怎么写? 展开
i = List1.ListIndex
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then List2.AddItem List1.List(i)
Next i
请问删除选中项目要怎么写? 展开
展开全部
由于列表框每次可以选择单个列表项,也可以同时选中多个列表项,这取决于MultiSelect属性的取值。所以,不同的情况处理方法也不同。
如果列表框每次只允许选择一个列表项的话(MultiSelect属性值为0),则可以用下面一句代码将所选的列表项删除
List1.RemoveItem ListIndex
上面代码中的ListIndex是列表框中所选项目的索引号。
如果列表框允许每次选择多个列表项的话(MultiSelect属性值为1或者2),则必须使用循环代码逐个删除,比如
Dim intI As Integer
For intI = List1.ListCount - 1 To 0 Step -1 '从后往前扫描
If List1.Selected(intI) = True Then List1.RemoveItem intI
Next intI
上面代码中Selected是一个数组属性,选中的列表项其Selected属性为True,没有选中的列表项其Selected属性为False。在允许多项选择的情况下是判断哪些列表项选中或未选中的惟一办法。
另外一个要点就是,对多个列表项的删除操作要从后往前扫描。如果从前向后扫描,则每次删除一个列表项时List属性(该属性为一个保存了列表项的数组)的长度都减1,循环次数会超过表中元素的个数,结果就会产生运行时错误。而从后向前扫描则可以避免这个问题。
如果列表框每次只允许选择一个列表项的话(MultiSelect属性值为0),则可以用下面一句代码将所选的列表项删除
List1.RemoveItem ListIndex
上面代码中的ListIndex是列表框中所选项目的索引号。
如果列表框允许每次选择多个列表项的话(MultiSelect属性值为1或者2),则必须使用循环代码逐个删除,比如
Dim intI As Integer
For intI = List1.ListCount - 1 To 0 Step -1 '从后往前扫描
If List1.Selected(intI) = True Then List1.RemoveItem intI
Next intI
上面代码中Selected是一个数组属性,选中的列表项其Selected属性为True,没有选中的列表项其Selected属性为False。在允许多项选择的情况下是判断哪些列表项选中或未选中的惟一办法。
另外一个要点就是,对多个列表项的删除操作要从后往前扫描。如果从前向后扫描,则每次删除一个列表项时List属性(该属性为一个保存了列表项的数组)的长度都减1,循环次数会超过表中元素的个数,结果就会产生运行时错误。而从后向前扫描则可以避免这个问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从0开始往下删除,那肯定要出错误,或者难以处理。
换一个思路,从下往上(从最大序号往0方向判断并删除就可以了);
Dim i As Integer
For i = List1.ListCount - 1 To 0 Step -1
If List1.Selected(i) Then
List1.RemoveItem i
End If
Next i
换一个思路,从下往上(从最大序号往0方向判断并删除就可以了);
Dim i As Integer
For i = List1.ListCount - 1 To 0 Step -1
If List1.Selected(i) Then
List1.RemoveItem i
End If
Next i
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim i As Integer
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
List2.AddItem (List1.List(i))
End If
Next
For i = List1.ListCount - 1 To 0 Step -1
If List1.Selected(i) = True Then
List1.RemoveItem (i)
End If
Next
这样添加到List2的项可以顺序
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
List2.AddItem (List1.List(i))
End If
Next
For i = List1.ListCount - 1 To 0 Step -1
If List1.Selected(i) = True Then
List1.RemoveItem (i)
End If
Next
这样添加到List2的项可以顺序
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i = List1.ListIndex
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
List2.AddItem List1.List(i)
List1.RemoveItem List1.List(i)
end if
Next i
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
List2.AddItem List1.List(i)
List1.RemoveItem List1.List(i)
end if
Next i
追问
这个不行 会出错
追答
倒过来走
For i = List1.ListCount - 1 To 0 Step -1
If List1.Selected(i) = True Then
List2.AddItem List1.List(i)
List1.RemoveItem List1.ListIndex
i = i - 1
End If
Next i
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询