Formular mit Datagridview Text- und Comboboxen, Status 'HasChanges'

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

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Michl.

    Formular mit Datagridview Text- und Comboboxen, Status 'HasChanges'

    Hallo zusammen,
    ich hätte eine Frage zu Dataset "HasChanges".

    Ich habe ein typisiertes Dataset mit einer Tabelle und 16 Spalten. Das Dataset bzw. die Tabelle wird beim öffnen des Formulars gefüllt.
    Da ich alle Werte eines Datensatzes zur Anzeige bringen möchte, habe dich das so gelöst, dass ich die für mich wichtigsten Werte (6 Spalten) im DataGridView anzeige und die restlichen Daten durch anklicken eines Datensatzes im DGV, unterhalb in TextBoxen angezeigt werden.

    Das DataGridView und die Textboxen sind an die gleiche BindingSource gebunden. Ein Wechsel der Row im DGV aktualisiert auch die Textboxen wie gewünscht :thumbsup: . Soweit, sogut.

    Wenn ich nach laden und Anzeigen der Daten 'HasChanges' abfrage, werden wie erwartet keine Änderungen angezeigt.
    Wechsele ich aber zu einem anderen Datensatz, wechselt auch der Status von 'HasChanges', ohne dass ich irgendwelche Änderungen vorgenommen habe.

    Ich denke, dass das am aktualisieren der Textboxen liegt wenn der Datensatz gewechselt wird, denn wenn ich die Form ohne Textboxen verwende, kann ich die Datensätze im DGV wechseln ohne dass sich der Status von 'HasChanges' ändert.

    Könnt Ihr mir da weiterhelfen, wie ich das angehen muss, dass sich der Status von 'HasChanges'nur ändert, wenn ich wirklich etwas ändere, oder einen neuen Datensatz anlege?


    Danke vorab für eure Hilfe und viele Grüße,
    Michael

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

    Als ersten Schritt kannst Du bei den TextBox-Eigenschaften bei (DataBindings) -> (Erweitert) rechts oben einstellen, dass der Datenbindungs-Aktualisierungsmodus auf Never steht. Wenn das klappt, dann ist das zwar keine Lösung, aber erstmal ein Workaround.
    Danach wär es sinnvoll, tatsächlich mal ein Zusatz-RawData-DGV auf's Form zu hauen, in dem alle Spalten/Daten angezeigt werden. Wenn Du dann die Daten lädst und das BS-Current wechselst, würdest Du sofort sehen, ob sich Daten tatsächlich ändern und auch welche. Und dann müsstest Du an der Stelle weitersuchen. Aber eines nach dem anderen.
    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.
    Soderle,

    Es lag mal wieder (wie so oft) an dem, der vor der Gloze sitzt. In meiner Verzweiflung bin ich davon ausgegangen, dass es an den TextBoxen liegen muss. Und dass EDR schreibt, er kennt das Verhalten gar nicht, Hmm?
    Beim umstellen der Textboxen von "OnValidation" auf "Never" stellte ich fest, dass ich hier in meiner Frage gar nicht erwähnt habe, dass ich auch 2 Combos mit im Formular habe. Und eben diese beiden waren tatsächlich die Ursache. Hier war bei den Eigenschaften "SelectedItem" und "SelectetValue", "OnValidation" eingestellt. Eine Änderung bei "SelectedItem" auf "Never" brachte dann letztendlich das gewünschte Verhalten. Beim Wechsel des Datensatzes bleibt "HasChanges" jetzt unverändert .

    Vielen lieben Danke euch beiden!
    Ja, das Schritt für Schritt ändern der Bindungen und die Zusatzinfo von dir, dass es eigendlich gar nicht sein kann, dass TextBoxen ein solches Fehlverhalten verursachen hat mir sehr geholfen. Wenn man den Fehler dann mal gefunden hat, ist es klarer. Aber da wäre ich mit meinem Wissensstand ohne eure Hilfe nie hinter gestiegen!