You can also use any object that you like in the list. Below is a small example, but for verification you will need to create a form with a list and a button on it. Same idea as a dictionary, but this will work with more complex objects.
Public Class Form1 Dim tests As New List(Of Test) Class Test Private _Key As Integer Public Property Key() As Integer Get Return _Key End Get Set(ByVal value As Integer) _Key = value End Set End Property Private _value As String Public Property Value() As String Get Return _value End Get Set(ByVal value As String) _value = value End Set End Property End Class Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load With tests .Add(New Test With {.Key = 1, .Value = "Val1"}) .Add(New Test With {.Key = 2, .Value = "Val2"}) .Add(New Test With {.Key = 3, .Value = "Val3"}) End With ListBox1.SelectionMode = SelectionMode.MultiSimple ListBox1.DisplayMember = "Value" For Each t In tests ListBox1.Items.Add(t) Next End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click For Each t As Test In ListBox1.SelectedItems Debug.WriteLine(t.Key) Next End Sub End Class
source share