DGV Checkboxspalte wird falsch gelesen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    DGV Checkboxspalte wird falsch gelesen

    Hallo Alle!

    Ich erstelle ein ungebundenes DGV mit einer Checkbox- und einer Textspalte, Sortmode programmatic.
    Ich füge der DGV bspw. 5x "false" und "Text1(2...3...)" hinzu.
    In der durch Klick auf einen Spaltenheader ausgelösten SUB prüfe ich per ForNext mit Laufvariable i, ob die Checkboxen markiert sind:
    If (CBool(DGV1.Rows(i).Cells(0).Value) = True) Then...
    Die gleiche SUB wird (probeweise) durch einen Standard-Button aufgerufen.
    Starte ich das Programm und markiere Checkboxen, so ist über den Button alles richtig.
    Über Klick auf den Spaltenheader wird immer die zuletzt markierte CheckBox als "nicht markiert" gelesen, es sei denn ich klicke nach dem Markieren noch zusätzlich in eine Textzelle.
    Komplettes Projekt ist als Dateianhang dabei.

    Warum ist das so? Wie kann ich das ändern, wenn ich über den Spaltenheader gehen muss?

    Grüsse, elmsrock
    Dateien
    • Testerei 2.zip

      (56,92 kB, 166 mal heruntergeladen, zuletzt: )
    Solange Du die Zelle nicht verlässt, ist der Zellstatus offiziell nicht geändert.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    elmsrock schrieb:

    Warum ist das so?

    Das DGV hat den EditModus noch nicht beendet, also wenn du auf den Spaltenheader klickst, ist es noch im EditMode.

    Wenn du auf einen Button klickst, so verlässt der Focus das DGV, und dadurch wird der EditModus beendet.

    man kann ein EndEdit auch erzwingen:

    VB.NET-Quellcode

    1. DGV1.EndEdit()




    Dringend empfehle ich dir diesees: Visual Studio - Empfohlene Einstellungen
    Die Voreinstellungen, die bei dir aktiv sind, verhindern ziemlich wirkungsvoll, dass du in vb.net vorankommst.