| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 563 人关注过本帖
标题:[求助]用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
快速回复:[求助]用list控件如何实现多项删除啊?
数据加载中...
 
   



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

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