Ich möchte Zählung überprüft Checkboxen auf "datagridview", wenn Sie auf das Kästchen klicken nicht auf den button klicken
Möchte ich die Anzahl von Kontrollkästchen, die ausgewählt sind, in einem datagridview, wenn eine checkbox geklickt wird.
Hier ist mein code:
Dim count1 As Integer = 0
For Each row As DataGridViewRow In dgvAtt.Rows
If row.Cells(1).Value = True Then
count1 += 1
End If
Next
txtCnton.Text = count1
Ich genannt habe, die oben genannten Verfahren in CellContentClick, CellValueChanged und CellStateChanged aber es zählt nicht richtig.
Sind Sie sicher, dass Zelle(1) ist die checkbox-Spalte? DataGridView-Spalten beginnen bei index 0.
Was meinst du, wenn Sie sagen, "Es zählt nicht, richtig'?
Was meinst du, wenn Sie sagen, "Es zählt nicht, richtig'?
InformationsquelleAutor user1614840 | 2012-08-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei mögliche Ursachen für die Zählung von check-Boxen unterscheiden von dem, was Sie erwarten. Die wahrscheinlichste ist, dass die Tatsache, dass der Wert des Kontrollkästchen-Spalte hinter den Kontrollkästchen Staat aufgrund von, wie das datagridview-Steuerelemente für die Bearbeitung verpflichten, Ihre Werte, wenn Sie den Fokus verlieren.
Die Lösung für die Handhabung der CurrentCellDirtyStateChanged Ereignis wie beschrieben hier auf der MSDN-Website.
Also dein code würde so etwas wie:
Und Sie CellValueChangedHander dann änderungen:
In dem code oben habe ich auch die Adresse, der zweite wahrscheinlich die Ursache eine falsche Zählung. In Ihrem code, den Sie referenzieren datagridview-Zellen durch Ihren index in der Zellen-array. Dies ist fast nie der beste Weg, es zu tun. Statt jede Spalte hat einen Namen, den Sie verwenden können, in der indexer.
InformationsquelleAutor David Hall