标题:[求助]用list控件如何实现多项删除啊?
只看楼主
good8551
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-5-9
 问题点数:0 回复次数:2 
[求助]用list控件如何实现多项删除啊?
其中list1的multiselect属性为2
Private Sub CmdClear_Click()
Dim r As Integer
For r = 0 To List2.ListCount - 1
If List1.Selected(r) = True Then
List1.RemoveItem r
End If
Next r
End Sub
我想一次可以选择两个以上的列表项,然后将他们从中间一次性删除,可是出错了
"List1.RemoveItem r"被涂成黄色
请各位大哥大姐帮帮忙啊!!!!!!!!!!!!!!!!!!!!!
搜索更多相关主题的帖子: list 控件 Sub rEnd 删除 
2006-05-13 19:16
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
得分:0 

这里有一个问题:当List的项目被删除一项后For r = 0 To List2.ListCount - 1中的ListCount已经不是原来的ListCount,如果在循环肯定出错。试想一想,如果List中全部被选,按理只需循环ListCount就可以了,当删除到最后一个时ListCount将=0,也就是说List1.RemoveItem r中的r将=0。
如果采用Collection对象,将不需要删除的项目添加到Collection对象,然后再将Collection对象中的项目遍历罗列出添加到List1中。
试一试这个:
Option Explicit

Private C As Collection

Private Sub Command1_Click()
Dim i As Integer
Dim x As Variant

Set C = New Collection

For i = 1 To List1.ListCount
If List1.Selected(i - 1) = False Then C.Add List1.List(i - 1)

Next

List1.Clear
For Each x In C
List1.AddItem x

Next

Set C = Nothing

End Sub

Private Sub Form_Load()
Dim i As Integer

With List1
For i = 1 To 100
.AddItem i

Next
End With

End Sub

[此贴子已经被作者于2006-5-13 23:14:31编辑过]


2006-05-13 23:11
good8551
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-5-9
得分:0 
谢谢楼上的大侠,非常感谢!
2006-05-14 11:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-63922-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.681346 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved