I am experiencing issues preventing duplicates from being added to a listbox.
Any thoughts on how to fix this issue?
Public Sub additems_Click(sender As Object, e As EventArgs) Handles additems.Click
Dim itemChecked As Object
Dim alreadyonkey As Boolean
Dim duplicates As Integer = 0
If box1.CheckedItems.Count > 0 Then
For Each itemChecked In box1.CheckedItems
alreadyadded = False
'Check if item selected has already been added to box2
If box2.Items.Contains(itemChecked) = True Then
alreadyadded = True
duplicates = duplicates + 1
Else
alreadyadded = False
End If
'Add item if all criteria met
If box2.Items IsNot "" And alreadyadded = False Then
box2.Items.Add(itemChecked)
End If
Next
If duplicates > 0 Then
MsgBox("One or more of the items you are trying to add have already been added.", MsgBoxStyle.Critical, "Item has already been added")
alreadyadded = False
End If
End If
End Sub
I figured out the issue with my code... The issue was primarily due to the fact that a nested For Each loop needed to be used to compare each item in box1 to each item in box2 one at a time and the items needed to be sent to string variables and them compared using "String.Equals".
Public Sub additems_Click(sender As Object, e As EventArgs) Handles additems.Click
Dim itemChecked As Object
Dim alreadyadded As Boolean
Dim duplicates As Integer = 0
If box1.CheckedItems.Count > 0
For Each itemChecked In box1.CheckedItems
Dim itemtoadd As String = itemChecked.ToString
'Check if item selected has already been added to box2
For Each item In box2.Items
Dim box2item As String = item.ToString
If String.Equals(Trim(itemtoadd), Trim(box2item)) = True Then
alreadyadded = True
duplicates = duplicates + 1
Else
End If
Next
'Add item if all criteria met
If itemChecked IsNot "" And alreadyadded = False Then
box2.Items.Add(itemChecked)
End If
Next
If duplicates > 0 Then
MsgBox("One or more of the items you are trying to add have already been added.", MsgBoxStyle.Critical, "Item hase already been added")
alreadyadded = False
duplicates = 0
End If
End If