GD Alle setzen,Wie die CheckBox Spalte in Datagridview-Wert auf true
Ich habe, sich nach einer Lösung für meine unten Herausforderung.
Ich habe ein Formular mit einem ungebundenen Datagridview, das dg hat eine hinzugefügte Spalte, die Benutzer eine Methode auswählen kann verwendet werden. Der Status des Ereignisses wird in einer Datenbank gespeichert, und nach dem erneuten Öffnen des Formulars überprüft der Code, ob das Ereignis in einem "offenen" Zustand ist. Wenn dies der Fall ist, vergleicht er die zuvor ausgewählte Methode mit den Methoden im Datagrid zuvor aktivierte Methode als 'ausgewählte' Methode.
Dennoch scheinen kann ich nicht diese leider zur Arbeit zu kommen ...
Der Code unten Methoden in der dg und vergleicht die Werte durchläuft, wenn es die methodId trifft es den Wert setzen soll "auf True 'oder auf den TrueValue sowieso.
Dies wird initialisiert, wenn die Datenbankprüfung true zurückgibt und nach vollständiger Initialisierung des Formulars, wobei session.methodID
ein Feld in der zurückgegebenen LINQ-Abfrage ist.
For Each r As DataGridViewRow In dgMethods.Rows
If r.Cells(1).Value = session.methodID Then
Dim c As DataGridViewCheckBoxCell = r.Cells(0)
c.Value = c.TrueValue
End If
Next
Leider setzt dies das Kontrollkästchen nicht auf "Überprüft". Die Schleife läuft und wertet den Vergleich zwischen r.Cells(1).Value
und session.methodID
korrekt aus und löst korrekt aus.
Die interessante Sache ist, wenn ich eine ähnliche Schleife nach dem Ereignis 'CellContentClick' mache, tut es genau das, was erwartet wird. (Das folgende Beispiel setzt alle Kontrollkästchen Werte geprüft)
Private Sub dgMethods_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgMethods.CellContentClick
'Only single selection allowed, so clear table before submitting new selection
For Each r As DataGridViewRow In dgMethods.Rows
Dim c As DataGridViewCheckBoxCell = r.Cells(0)
c.Value = c.TrueValue
Next
dgMethods.CommitEdit(DataGridViewDataErrorContexts.Commit)
End Sub
Also, anscheinend gibt es einen Unterschied in dem Zustand zwischen nur der Schleife Aufruf auf den dgMethods
und wenn das dgMethods.CellContentClick
Ereignis ausgelöst hat, aber ich weiß nicht, was ein ? Es gibt viele Posts, die versuchen, die CheckBox-Spalte zu setzen, aber ich konnte keine von ihnen zum Laufen bringen.
Hat jemand eine Idee?
Ich würde Ihre Vorschläge begrüßen?
GD Ivan, Soweit mir bekannt ist, erlaubt die Spalte DataGridViewCheckBox keine booleschen 'True' oder 'False' Einstellungen. Sie können einen TrueValue- oder einen FalseValue-Wert festlegen, den Sie in den Spalteneinstellungen festlegen müssen. Dies ist jedoch eine String-Variable, kein Boolescher Wert. Wie in meinem OP angegeben, war die Schleife selbst korrekt, der Abschussmechanismus jedoch nicht. Siehe meine eigene Antwort unten. – mtholen