有一列表框控件list1,设定为能按住ctrl键多选,列表框内存放有二万条记录,
在list1的单击事件中,每当多选一项时,就添加到字符数组中存放,当选中那项多选一次(变成没选中),那样就从字符数组中去除相应的该项记录.应该怎么去实现呢???请大家帮帮忙~~~
在list1的单击事件中,每当多选一项时,就添加到字符数组中存放,当选中那项多选一次(变成没选中),那样就从字符数组中去除相应的该项记录.应该怎么去实现呢???请大家帮帮忙~~~
在VB6中请参照以下代码:
Private s As String '用于保存选项名称的变量
Private SelectNumber As Integer '当前选中的有效数量
Private Sub List1_Click()
If List1.SelCount > SelectNumber Then
s = s + List1.List(List1.ListIndex) & ";"
SelectNumber = SelectNumber + 1
Else
s = Replace(s, List1.List(List1.ListIndex) & ";", "", 1, 1, vbTextCompare)
SelectNumber = SelectNumber - 1
End If
End Sub
Dim arr() As StringPrivate Sub Command1_Click()
For i = 0 To UBound(arr)
MsgBox arr(i)
Next
End SubPrivate Sub Form_Load()
For i = 0 To 100
List1.AddItem i
Next
ReDim Preserve arr(0)
List1.ListIndex = 0
arr(0) = List1.ListIndex
End Sub
Private Sub List1_Click()
Dim brr() As String
Dim iboolen As Boolean
Dim i, j, k As Integer
For i = 0 To UBound(arr)
If arr(i) = List1.ListIndex Then
iboolen = True
Exit For
End If
iboolen = False
Next
If iboolen = False Then
ReDim Preserve arr(UBound(arr) + 1)
arr(UBound(arr)) = List1.ListIndex
Else
If UBound(arr) < 1 Then Exit Sub
ReDim Preserve brr(UBound(arr) - 1)
For j = 0 To UBound(arr)
If arr(j) <> List1.ListIndex Then
brr(k) = arr(j)
k = k + 1
End If
Next
ReDim Preserve arr(UBound(arr) - 1)
arr = brr
End If
End Sub
老张 的方法呢,数组一开始实在不好操作.先谢谢两位大哥.