Condividi tramite


Procedura: rilevare gli elementi selezionati nel controllo CheckedListBox di Windows Form

Quando si presentano dati in un controllo Windows FormCheckedListBox, è possibile scorrere la raccolta archiviata nella CheckedItems proprietà oppure eseguire un'istruzione nell'elenco usando il GetItemChecked metodo per determinare quali elementi vengono controllati. Il GetItemChecked metodo accetta un numero di indice dell'elemento come argomento e restituisce true o false. Contrariamente a quanto previsto, le SelectedItems proprietà e SelectedIndices non determinano quali elementi vengono controllati; determinano quali elementi sono evidenziati.

Per determinare gli elementi selezionati in un controllo CheckedListBox

  1. Scorrere la CheckedItems raccolta, a partire da 0 perché la raccolta è in base zero. Si noti che questo metodo ti darà il numero di elemento nell'elenco di elementi selezionati, non l'elenco complessivo. Pertanto, se il primo elemento dell'elenco non è selezionato e il secondo elemento viene selezionato, il codice seguente visualizzerà testo simile a "Elemento controllato 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);  
    }  
    
    • oppure-
  2. Scorrere la Items raccolta, a partire da 0 perché la raccolta è in base zero e chiamare il GetItemChecked metodo per ogni elemento. Si noti che questo metodo ti darà il numero di elemento nell'elenco complessivo, quindi se il primo elemento nell'elenco non è selezionato e il secondo elemento viene selezionato, verrà visualizzato qualcosa come "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);  
    

Vedi anche