Checkboxcolumn mit Checkbox synchronisieren

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von hjerteblod.

    Checkboxcolumn mit Checkbox synchronisieren

    Guten Morgen allerseits,

    ich habe eine Datagridview, in der die 3. Spalte eine Checkboxcolumn ist.
    Daneben gibt es noch ein Panel mit Checkboxen. In der DGV steht zb. in der ersten
    Spalte pdf und dann die Checkbox, in der zweiten word und dann die Checkbox etc.

    Und es gibt eine Checkbox für pdf im Panel, und eine für word usw.
    Nun möchte ich die Checkboxcolumn für pdf anhaken und es soll die Checkbox im Panel
    angehakt werden. Wenn ich den Haken aus der DGV nehme, soll er auch aus der Checkbox verschwinden.

    A la ... if checkboxcolumnpdf.checked = true then
    checkboxpdf. checked = true
    end if

    leider hänge ich daran, die checkboxcolumn anzusprechen. umgedreht funktioniert das ganze:

    VB.NET-Quellcode

    1. For i As Integer = 0 To dgvDateien.Rows.Count - 1
    2. If cb_Whitelist1_PDF.Checked = False Then
    3. If dgvDateien.Rows(i).Cells(0).Value.ToString = (".pdf") Then
    4. dgvDateien.Rows(i).Cells(2).Value = False
    5. End If
    6. ElseIf cb_Whitelist1_PDF.Checked = True Then
    7. If dgvDateien.Rows(i).Cells(0).Value.ToString = (".pdf") Then
    8. dgvDateien.Rows(i).Cells(2).Value = True
    9. End If
    10. End If
    11. Next


    (ich weiß, auch diese methode ist möglicherweise etwas umständlich, das hab ich noch nicht ganz raus aber so funktioniert es erstmal)

    Meine große Frage ist nun, wie kann ich abfragen ob die checkboxcolumn angehakt ist oder nicht?
    @hjerteblod Dieses Beispiel invertiert alle DGV-CheckBoxen in der 2. Spalte:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. ' alle Checks invertieren
    3. For Each row As DataGridViewRow In Me.DataGridView1.Rows
    4. Dim cc = DirectCast(row.Cells(1), DataGridViewCheckBoxCell) ' hier den richtigen Index einsetzen
    5. cc.Value = Not CBool(cc.Value)
    6. Next
    7. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!