Private Sub CHKDUP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CHKDUP.Click
Dim i As Long
Dim j As Long
With GlinkList
For i = 0 To GlinkList.Items.Count - 1
For j = GlinkList.Items.Count To (i + 1) Step -1
If GlinkList.Items(j) = GlinkList.Items(i) Then
GlinkList.Items.Remove(j)
End If
Next
Next
End With
End Sub
当我按下按钮时,它给出了'你的应用程序中发生了Unhandeled异常,InvalidArgument =值'975< -Listbox I tems'对'index'无效。参数名称:index
答案 0 :(得分:1)
我认为首先复制列表可能会更容易,然后将独特的结果放回去:
Dim items(GlinkList.Items.Count - 1) As Object
GlinkList.Items.CopyTo(items, 0)
GlinkList.Items.Clear()
GlinkList.Items.AddRange(items.AsEnumerable().Distinct().ToArray())
答案 1 :(得分:0)
试试这个(尚未测试,因为我现在没有在我的计算机中使用Visual Studio)
While i < GlinkList.Items.Count
j = i + 1
While j < GlinkList.Items.Count
If GlinkList.Items(j) = GlinkList.Items(i) Then
GlinkList.Items.Remove(j)
Else
j += 1
End If
End While
i += 1
End While
答案 2 :(得分:0)
我认为我得到了答案!
If Not listbox1.Items.Contains("sometext") Then
Me.listbox1.Items.Add("sometext")
End If
答案 3 :(得分:0)
Dim i, j As Long
For i = 0 To ListBox2.Items.Count - 1
For j = ListBox2.Items.Count - 1 To (i + 1) Step -1
If ListBox2.Items(i) = ListBox2.Items(j) Then
ListBox2.Items.Remove(ListBox2.Items(j))
End If
Next
Next
答案 4 :(得分:-1)
我曾使用不同的方法解决以下问题,但无法回忆如何:创建第二个listbox2并使第一个隐藏然后使用以下代码
Dim i2 As Integer
For i2 = 0 To ListBox1.Items.Count - 1
If Not ListBox2.Items.Contains(ListBox1.Items.Item(i2)) Then
ListBox2.Items.Add(ListBox1.Items.Item(i))
End If
Next
现在你的第二个列表框没有重复项