如何删除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
请问删除选中项目要怎么写?
展开
 我来答
曼诺诺曼
高粉答主

2020-03-09 · 每个回答都超有意思的
知道答主
回答量:282
采纳率:0%
帮助的人:6万
展开全部

工具:华硕电脑

原料:VB

1、首先打开VB软件,绘制好相应的控件,如下图所示。

2、然后更改属性,如下图所示。

3、然后输入相关代码,如下图所示。

4、编写删除代码,记得要遍历查询,如下图所示。

5、运行后便可以看到这样的程序。即编写一个为列表框添加删除选项成功,如下图所示。

lshhjx
推荐于2017-09-14 · TA获得超过461个赞
知道小有建树答主
回答量:151
采纳率:100%
帮助的人:153万
展开全部
由于列表框每次可以选择单个列表项,也可以同时选中多个列表项,这取决于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,循环次数会超过表中元素的个数,结果就会产生运行时错误。而从后向前扫描则可以避免这个问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syx54
2013-05-03 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2711万
展开全部
从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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
UNi2013
推荐于2017-09-13 · TA获得超过293个赞
知道小有建树答主
回答量:185
采纳率:100%
帮助的人:157万
展开全部
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的项可以顺序
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Excel开发
2013-05-03 · TA获得超过2913个赞
知道大有可为答主
回答量:1989
采纳率:53%
帮助的人:1009万
展开全部
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 = 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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式