一个很简单的关于list的问题~~

netrobo 2001-12-07 12:13:21
一个清除list所选项目的代码:
Private Sub cmdList2ClearSel_Click()
Dim i As Integer
If List2.SelCount = 1 Then
List2.RemoveItem List2.ListIndex
ElseIf List2.SelCount > 1 Then
For i = List2.ListCount - 1 To 0 Step -1
If List2.Selected(i) = True Then
List2.RemoveItem i
End If
Next i
End If
End Sub
list的各项属性都设置正确,上面的代码是正确的,但我把代码改成下面的以后,程序却提示错误:
Private Sub cmdList2ClearSel_Click()
Dim i As Integer
If List2.SelCount = 1 Then
List2.RemoveItem List2.ListIndex
ElseIf List2.SelCount > 1 Then
For i =0 to List2.ListCount - 1
If List2.Selected(i) = True Then
List2.RemoveItem i
End If
Next i
End If
End Sub
提示是:if list2.selected(i)=true出错,提示“实时错误381,无效属性数组索引”
其实我就将list2.selcount-1 to 0改成了0 to selcount-1,我觉得没什么问题,但却提示出错,这是为什么,我是初学者,十分希望各位大虾提出事故缘由!!

谢谢了~`
...全文
48 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
crystal_heart 2001-12-07
  • 打赏
  • 举报
回复
For i =0 to List2.ListCount - 1
If List2.Selected(i) = True Then
List2.RemoveItem i ' .RemoveItem i 以后 .SelCount当然会减少了,这样子都不知道啊?
End If
Next i
enmity 2001-12-07
  • 打赏
  • 举报
回复
你这样做的问题在于,每当你删除一个项目,该ListBox的项就会减少一个,.Count就减少一,这样问题就来了。

你可以用逐步调试(F8)来一步一步地观察该ListBox的Count与ListIndex量就清楚了。
enmity 2001-12-07
  • 打赏
  • 举报
回复

要清楚ListBox里面的所有项目,为什么不用.Clear方法?一个方法就马上把所有项目清除了。

如果你非得要用循环语句来一个一个删除,可以考虑这样删除:


Private Sub Command2_Click()

Dim iItem As Integer
With List1
For iItem = .ListCount - 1 To 0 Step -1
.RemoveItem iItem
Next
End With

End Sub
DeityFox 2001-12-07
  • 打赏
  • 举报
回复
crystal_heart(笑看风云),偶是神狐

真因为他不知道才问嘛,还请多多帮助一些初学者
相关推荐
发帖
VB基础类

7681

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2001-12-07 12:13
社区公告
暂无公告