How to: Determine Checked Items in the Windows Forms CheckedListBox Control
When presenting data in a Windows Forms CheckedListBox control, you can either iterate through the collection stored in the CheckedItems property, or step through the list using the GetItemChecked method to determine which items are checked. The GetItemChecked method takes an item index number as its argument and returns true
or false
. Contrary to what you might expect, the SelectedItems and SelectedIndices properties do not determine which items are checked; they determine which items are highlighted.
To determine checked items in a CheckedListBox control
Iterate through the CheckedItems collection, starting at 0 since the collection is zero-based. Note that this method will give you the item number in the list of checked items, not the overall list. So if the first item in the list is not checked and the second item is checked, the code below will display text like "Checked Item 1 = MyListItem2".
' Determine if there are any items checked. If CheckedListBox1.CheckedItems.Count <> 0 Then ' If so, loop through all checked items and print results. Dim x As Integer Dim s As String = "" For x = 0 To CheckedListBox1.CheckedItems.Count - 1 s = s & "Checked Item " & (x + 1).ToString & " = " & CheckedListBox1.CheckedItems(x).ToString & ControlChars.CrLf Next x MessageBox.Show(s) End If
// Determine if there are any items checked. if(checkedListBox1.CheckedItems.Count != 0) { // If so, loop through all checked items and print results. string s = ""; for(int x = 0; x < checkedListBox1.CheckedItems.Count ; x++) { s = s + "Checked Item " + (x+1).ToString() + " = " + checkedListBox1.CheckedItems[x].ToString() + "\n"; } MessageBox.Show(s); }
// Determine if there are any items checked. if(checkedListBox1->CheckedItems->Count != 0) { // If so, loop through all checked items and print results. String ^ s = ""; for(int x = 0; x < checkedListBox1->CheckedItems->Count; x++) { s = String::Concat(s, "Checked Item ", (x+1).ToString(), " = ", checkedListBox1->CheckedItems[x]->ToString(), "\n"); } MessageBox::Show(s); }
- or -
Step through the Items collection, starting at 0 since the collection is zero-based, and call the GetItemChecked method for each item. Note that this method will give you the item number in the overall list, so if the first item in the list is not checked and the second item is checked, it will display something like "Item 2 = MyListItem2".
Dim i As Integer Dim s As String s = "Checked Items:" & ControlChars.CrLf For i = 0 To (CheckedListBox1.Items.Count - 1) If CheckedListBox1.GetItemChecked(i) = True Then s = s & "Item " & (i + 1).ToString & " = " & CheckedListBox1.Items(i).ToString & ControlChars.CrLf End If Next MessageBox.Show(s)
int i; string s; s = "Checked items:\n" ; for (i = 0; i <= (checkedListBox1.Items.Count-1); i++) { if (checkedListBox1.GetItemChecked(i)) { s = s + "Item " + (i+1).ToString() + " = " + checkedListBox1.Items[i].ToString() + "\n"; } } MessageBox.Show (s);
int i; String ^ s; s = "Checked items:\n" ; for (i = 0; i <= (checkedListBox1->Items->Count-1); i++) { if (checkedListBox1->GetItemChecked(i)) { s = String::Concat(s, "Item ", (i+1).ToString(), " = ", checkedListBox1->Item[i]->ToString(), "\n"); } } MessageBox::Show(s);
See also
.NET Desktop feedback