This example retrieves items in a list that have been checked and simply outputs them to the Output window.
Assume the list has been bound to a DataSource, like a DataTable, and that the DisplayMember and ValueMember properties are bound to fields in the DataTable:
myCheckedList.DataSource = myDataTable; myCheckedList.DisplayMember = "FieldNameOne"; myCheckedList.ValueMember = "FieldNameTwo";
To read the value associated with FieldNameTwo for items in the CheckedListBox, employ a DataRowView object to retrieve the value:
foreach(DataRowView view in myCheckedList.CheckedItems) { Console.WriteLine(view[myCheckedList.ValueMember].ToString()); }
As you can see, the foreach automatically casts CheckedItemCollection’s Item objects into DataRowView objects as it iterates through the collection. This allows you to retreive the value you want.
On a side note, you could have used the literal string FieldNameTwo instead of myCheckedList.ValueMember as the array indexer for the view, but using the latter lends you a bit more flexibility?in case you want to change the field (or the name of the field) to which the CheckedListBox ValueMember is linked.