Compartir a través de


Cómo: Determinar los elementos activados en el control CheckedListBox de formularios Windows Forms

Actualización: noviembre 2007

Cuando presente datos en un control CheckedListBox de formularios Windows Forms, puede recorrer en iteración la colección almacenada en la propiedad CheckedItems o desplazarse por la lista con el método GetItemChecked para determinar qué elementos están activados. El método GetItemChecked toma un número de índice del elemento como argumento y devuelve true o false. Al contrario de lo que podría esperarse, las propiedades SelectedItems y SelectedIndices no determinan qué elementos están activados, sino que determinan los elementos resaltados.

Para determinar los elementos activados en un control CheckedListBox

  1. Recorra en iteración la colección CheckedItems, empezando por el elemento de índice 0, puesto que la colección está basada en 0. Tenga en cuenta que este método le dará el número de elemento de la lista de elementos activados, no de la lista general. Por lo tanto, si el primer elemento de la lista no está activado y el segundo sí lo está, el código siguiente mostrará texto como "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);
    }
    

    O bien

  2. Desplácese por la colección Items, empezando por el elemento de índice 0, puesto que la colección está basada en 0, e invoque al método GetItemChecked para cada elemento. Tenga en cuenta que este método dará el número de elemento en la lista global; por tanto, si el primer elemento de la lista no está activado y el segundo sí lo está, se mostrará algo como "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);
    

Vea también

Otros recursos

Controles de formularios Windows Forms usados para mostrar opciones