Wie überprüfe ich das CheckListBox-Element mit einem Klick?

78

Ich codiere die Windows- FormsAnwendung in C # und verwende CheckListBoxControl.

Wie überprüfe ich das CheckListBox-Element mit nur einem Klick?

Pratik Deoghare
quelle

Antworten:

174

Ich denke du suchst

CheckOnClick- Eigenschaft

setze es auf true

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob das Kontrollkästchen bei Auswahl eines Elements umgeschaltet werden soll.

rahul
quelle
2
Sie finden dies im Eigenschaftenfenster des Kontrollkästchens.
Rahul
8

Stellen Sie die Eigenschaft auf diese Weise zur Entwurfszeit ein

Geben Sie hier die Bildbeschreibung ein

oder per Code:

CheckedListBox.CheckOnClick = true;
daniele3004
quelle
3

Ich habe gerade ein Problem gelöst, bei dem ich CheckOnClick über den Designer auf True gesetzt hatte, aber für die Benutzeroberfläche war noch ein zweiter Klick erforderlich, um Elemente zu überprüfen. Ich habe festgestellt, dass die Designer-Datei aus irgendeinem Grund nicht aktualisiert wurde, als ich den Wert geändert habe. Zum Auflösen ging ich in die Designer-Datei und fügte eine Zeile hinzu

this.Product_Group_CheckedListBox.CheckOnClick = true;

Danach hat es wie erwartet funktioniert. Ich bin mir nicht sicher, warum der Designer nicht aktualisiert hat, aber vielleicht hilft diese Problemumgehung jemandem.

Scope Creep
quelle
1

Sie können alle auch per Knopfdruck oder auf Checkliste überprüfen

private void checkedListBox1_Click(object sender, EventArgs e)
{

    for (int i = 0; i < checkedListBox1.Items.Count; i++)
        checkedListBox1.SetItemChecked(i, true);

}
Adiii
quelle
Wie können Sie dies mit einer foreach-Anweisung tun?
Bryan
@Bryan versuchen Sie dies und Body of Loop Cast das Objekt in Checkliste foreach (Objekt Element in CheckedListBox1.CheckedItems)
Adiii
Die Verwendung des Befehls count in einer Schleife sollte vermieden werden. Wie der Name des Befehls besagt. Die Zählung verwendet die Zeit, um das Element in der Liste in jeder Iteration der Schleife zu zählen. Wenn die Liste nur eine Zählung unterstützt, verwenden Sie: int totalitems = checkedListBox1.Count; Verwenden Sie dann die Variable in der for-Schleife.
nivs1978
1

Sie können auch ein Kontrollkästchen außerhalb der CheckListBox verwenden, um alle Elemente zu aktivieren / deaktivieren. Fügen Sie im selben Formular ein Kontrollkästchen neben der CheckedListBox hinzu und nennen Sie es CkCheckAll. Fügen Sie das Click-Ereignis für die CheckBox hinzu (das ich dem CheckChanged-Ereignis vorziehe). Neben der CheckedListBox befindet sich eine Schaltfläche (BtnAdd), mit der alle markierten Elemente zu einer Datenbanktabelle hinzugefügt werden. Es ist nur aktiviert, wenn mindestens ein Element in der CheckedListBox aktiviert ist.

    private void CkCheckAll_Click(object sender, EventArgs e)
    {
        CkCheckAll.Text = (CkCheckAll.Checked ? "Uncheck All" : "Check All");
        int num = Cklst_List.Items.Count;
        if (num > 0)
        { 
            for (int i = 0; i < num; i++)
            {
                Cklst_List.SetItemChecked(i, CkCheckAll.Checked);
            }
        }
        BtnAdd_Delete.Enabled = (Cklst_List.CheckedItems.Count > 0) ? true : false;
    }
tjmaher
quelle