Orignal question: I made a search function for a listbox. If i search for a value; the listbox clears all items, and executes a items.add function (which contains the given values from the textbox). I want to "save" the selected values in listbox4 (listbox5 are also the selected items). I tried to use the setselected function, but this function doesn't allow strings. Is there a workaround which saves the selected items?
Update:
Thanks, I implemented your snippet.
Below is my the code (work in progress). It add's multiple values of the same value in listbox4. Besides the selected value (just one added) it add's the same value unselected. Beside this issue the code works.
Does anyone have an idea?
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
Dim selected As Object()
selected = (From selitem In ListBox5.SelectedItems Select selitem).ToArray()
ListBox4.Items.Clear()
For Each item In ListBox3.Items
If item.contains(TextBox1.Text) Then
ListBox4.Items.Add(item)
End If
Next
For Each item In ListBox5.Items
If item.contains(TextBox1.Text) Then
ListBox4.Items.AddRange(selected)
Array.ForEach(selected, Sub(selitem As Object) ListBox4.SelectedItems.Add(selitem))
End If
Next
End Sub
Private Sub ListBox4_Click(sender As Object, e As System.EventArgs) Handles ListBox4.Click
Dim additems As String
For Each additems In ListBox4.SelectedItems
ListBox5.Items.Add(additems)
Next
''REMOVE DUPLICATES
Dim List As New ArrayList
For Each item1 As String In ListBox5.Items
If Not List.Contains(item1) Then
List.Add(item1)
End If
Next
ListBox5.Items.Clear()
For Each item2 As String In List
ListBox5.Items.Add(item2)
Next
Dim i As Integer
For i = 0 To Me.ListBox5.Items.Count - 1
Me.ListBox5.SetSelected(i, True)
Next
End Sub
List<T>
before callingClear
. - Bjørn-Roger Kringsjå