Compartir a través de


Cómo: Determinar ítems marcados en el control CheckedListBox de Windows Forms para formularios

Al presentar datos en un control de Windows Forms CheckedListBox , puede recorrer en iteración la colección almacenada en la CheckedItems propiedad o recorrer la lista mediante el GetItemChecked método para determinar qué elementos se comprueban. El GetItemChecked método toma un número de índice de elemento como argumento y devuelve true o false. Al contrario de lo que podría esperar, las SelectedItems propiedades y SelectedIndices no determinan qué elementos se comprueban; determinan qué elementos están resaltados.

Para determinar los elementos comprobados en un control CheckedListBox

  1. Recorrer en iteración la CheckedItems colección, comenzando en 0, ya que la colección está basada en cero. Tenga en cuenta que este método le proporcionará el número de elemento en la lista de elementos comprobados, no la lista general. Por lo tanto, si el primer elemento de la lista no está marcado y el segundo elemento está marcado, el código siguiente mostrará texto como "Elemento marcado 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);
    }
    
    • o -
  2. Recorra la Items colección, comenzando en 0, ya que la colección está basada en cero y llame al GetItemChecked método para cada elemento. Tenga en cuenta que este método le proporcionará el número de elemento de la lista general, por lo que si el primer elemento de la lista no está activado y el segundo elemento está activado, mostrará algo parecido a "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);
    

Consulte también