Procedura: rilevare gli elementi selezionati nel controllo CheckedListBox di Windows FormHow to: Determine Checked Items in the Windows Forms CheckedListBox Control

Quando la presentazione dei dati in un Windows Form CheckedListBox (controllo), è possibile scorrere la raccolta archiviato nel CheckedItems proprietà o esaminare l'elenco utilizzando il GetItemChecked metodo per determinare quali elementi sono selezionati.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. Il GetItemChecked metodo accetta un numero di indice di elemento come argomento e restituisce true o false.The GetItemChecked method takes an item index number as its argument and returns true or false. Contrariamente a quanto potrebbe pensare, il SelectedItems e SelectedIndices proprietà non in grado di determinare quali elementi sono selezionati; è possibile determinare quali elementi vengono evidenziati.Contrary to what you might expect, the SelectedItems and SelectedIndices properties do not determine which items are checked; they determine which items are highlighted.

Per determinare gli elementi selezionati in un controllo CheckedListBoxTo determine checked items in a CheckedListBox control

  1. Scorrere il CheckedItems insieme, a partire da 0, poiché la raccolta è in base zero.Iterate through the CheckedItems collection, starting at 0 since the collection is zero-based. Si noti che questo metodo verrà visualizzato il numero di elementi nell'elenco di elementi controllati, non nell'intero elenco.Note that this method will give you the item number in the list of checked items, not the overall list. Pertanto in se il primo elemento nell'elenco non è selezionato e il secondo elemento, il codice seguente viene visualizzato testo, ad esempio "Checked Item 1 = MyListItem2".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->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);  
    }  
    
    • oppure -or -
  2. Scorrere il Items insieme, a partire da 0, poiché la raccolta è in base zero e chiamare il GetItemChecked metodo per ogni elemento.Step through the Items collection, starting at 0 since the collection is zero-based, and call the GetItemChecked method for each item. Si noti che questo metodo verrà visualizzato il numero di elementi nell'elenco globale, pertanto se il primo elemento nell'elenco non viene verificato e il secondo elemento è selezionato, verrà visualizzato un output simile "elemento 2 = MyListItem2".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);  
    

Vedere ancheSee Also

Controlli Windows Form usati per elencare opzioniWindows Forms Controls Used to List Options