Så här bestämmer du markerade objekt i kontrollen Markerad Listabox för Windows-formulär

När du presenterar data i en Windows Forms-CheckedListBox kontroll kan du antingen iterera genom samlingen som lagras i egenskapen CheckedItems eller gå igenom listan med hjälp av metoden GetItemChecked för att avgöra vilka objekt som är markerade. Metoden GetItemChecked tar ett objektindexnummer som argument och returnerar true eller false. I motsats till vad du kan förvänta dig avgör inte egenskaperna SelectedItems och SelectedIndices vilka objekt som kontrolleras. de avgör vilka objekt som är markerade.

Så här fastställer du markerade objekt i en CheckListBox-kontroll

  1. Iterera genom CheckedItems-samlingen, från och med 0 eftersom samlingen är nollbaserad. Observera att den här metoden ger dig objektnumret i listan över markerade objekt, inte den övergripande listan. Om det första objektet i listan inte är markerat och det andra objektet är markerat visas text som "Markerat objekt 1 = MyListItem2" i koden nedan.

    ' 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);
    }
    
    • eller-
  2. Gå igenom Items-samlingen med början 0 eftersom samlingen är nollbaserad och anropa metoden GetItemChecked för varje objekt. Observera att den här metoden ger dig objektnumret i den övergripande listan, så om det första objektet i listan inte är markerat och det andra objektet är markerat visas något i stil med "Objekt 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);
    

Se även