一个程序,内有LISTBOX控件,一个COMMAND按钮,要使它删除选种项,为什么要出错?而且i的值似乎都是listcount-1????望解答,谢谢!
Private Sub Command1_Click()
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
List1.RemoveItem i
End If
Next i
End Sub
...全文
905打赏收藏
大家都来找错误
一个程序,内有LISTBOX控件,一个COMMAND按钮,要使它删除选种项,为什么要出错?而且i的值似乎都是listcount-1????望解答,谢谢! Private Sub Command1_Click() For i = 0 To List1.ListCount - 1 If List1.Selected(i) = True Then List1.RemoveItem i End If Next i End Sub
当然了,你每次删除了一个选项之后,ListCount就减少一个,那么ListBox的最大项目数就为
ListCount - 2,自然循环到ListCount - 1时就错了(数组越界)。一种解决办法是反过来循环:
Private Sub Command1_Click()
For i = List1.ListCount - 1 To 0 Step -1
If List1.Selected(i) = True Then
List1.RemoveItem i
i = i-1
End If
Next i
End Sub