Bei Wertveränderung durch User springt DGV eine Zeile weiter

  • VB.NET
  • .NET (FX) 4.0

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von sonne75.

    Bei Wertveränderung durch User springt DGV eine Zeile weiter

    Hallo,

    ich habe bei mir ein gebundenes DGV, aber Bindung ist gerade irrelevant, deswegen poste ich es hier. Wenn ich einen Wert in einer Zelle ändere und auf Enter klicke, dann springt der DGV eine Zeile weiter. Wenn ich Bindingsource.Position zurückstelle, verändert sich nichts, trotzdem belibt die nächste Zeile ausgewählt. Wie kann ich es verhindern?

    Und noch was: DGV hat 3 Spalten, 2 davon stehen auf ReadOnly=True, trotzdem kann ich da etwas anderes eingeben. :(

    Danke.
    Ich habe 3 DGV, muss ich jetzt für alle Variablen anlegen??
    Ich markiere immer die ganze Row, nicht nur die Zelle, wie muss ich es dann machen?

    @Don_Batisto
    Es funktioniert nicht, habe

    VB.NET-Quellcode

    1. dgv.Rows(e.RowIndex).Selected=True


    gemacht, aber er springt trotzdem weiter. Wenn ich Haltepunkt setze, sehe ich, dass der RowIndex richtig ist, aber danach springt er wohl weiter.

    Genau das mache ich, das Abfangen, diese obige Code-Zeile steht im "ValueChanged"-Event drin... Nur funktioniert es halt nicht, weil er danach springt.

    EDIT: auch die vorige Zeile (e.RowIndex-1) auf Selected setzen funktioniert nicht, er springt trotzdem weiter...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „sonne75“ ()

    Mal andere Idee, ich habe jetzt bei Google gefunden, es über KeyDown-Event zu machen. Aber irgendwie wird er bei mir gar nicht ausgelöst. Auch KeyPress-Event nicht. Woran kann es liegen?

    EDIT: KeyUp wird ausgelöst, er springt auch zu e.Handled=True, nur springt er trotzdem eine Zeile weiter. Den Tipp hatte ich von hier:
    mycsharp.de/wbb2/thread.php?threadid=79256

    EDIT: Ich habe es hingekriegt, anscheinend hat Bindingsource sich verändert und dann die Zeile wieder mitgezogen. Ich mache jetzt im KeyUp-Event noch BS.MovePrevious() und vorher einen Flag, den ich im BS.CurrentChanged prüfe, um darauf nicht zu reagieren.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „sonne75“ ()

    @sonne75
    Hast du vielleicht an den "AllowUserto..." Eingenschaften was geändert? Ich hatte mal ein solches verhalten als ich AllowUserToAddRows geändert hatte.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Die sind identisch mit dem ersten DGV: AllowUserToAddRows und AllowUserToDeleteRows auf False, der Rest sind Standardeinstellungen (auch gleich).

    @ErfinderDesRades
    Ja, ich weiß. Ich war vorhin so froh, dass ich es hingekriegt habe, mit dem ersten DGV...
    Ich habe in 8 Minuten schon Wochenende, kann also erst am Montag weitermachen... Wenn ich da nichts finde, dann mache ich ein Beispielprojekt, allerdings wird es da bestimmt funktionieren. Das Projekt ist mittlerweile so umfangreich, dass VS immer wieder mal spinnt. :(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „sonne75“ ()