Udostępnij za pośrednictwem


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

  1. 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 - 1 ; 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.get_CheckedItems().get_Count() != 0  ) 
    {
       // If so, loop through all checked items and print results.
       System.String s = "";
       for(int x=0;x <= checkedListBox1.get_CheckedItems().get_Count() - 1;x+)
       {
          s = s + "Checked Item " + Convert.ToString(++x) + " = " +          checkedListBox1.get_CheckedItems().get_Item(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 - 1; x+)
       {
          s = String::Concat(s, "Checked Item ", (x+1).ToString(),
             " = ", checkedListBox1->CheckedItems[x]->ToString(),
             "\n");
       }
       MessageBox::Show(s);
    }
    

    - or -

  2. 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;
    System.String s;
    s = "Checked items:\n";
    for(i = 0;i <= checkedListBox1.get_Items().get_Count() - 1;i +)
    {
       if ( checkedListBox1.GetItemChecked(i)  ) 
       {
          s = s + "Item " + Convert.ToString(++i) + " = " + checkedListBox1.get_Item(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

Other Resources

Windows Forms Controls Used to List Options