Hallo zusammen!
Ich habe hier ein größeres Dialogformular mit etlichen Textfeldern und einem Grid. (VS2008, C#, .NET 2.0)
Die Daten stammen teilweise aus verschiedenen DB-Tabellen (SQL-Server), teilweise auch zur Laufzeit durch das Programm berechnet. Daher habe ich keine Felder irgendwie an die DB gebunden, sondern alle erst in einem Objekt gesammelt und dann manuell in die Textfelder übertragen.
Nun möchte ich, dass dann, wenn der Benutzer in den Feldern Änderungen vornimmt, das Formular in einen "Editmodus" wechselt. Es soll also ein"Speichern"-Button aktiv werden, bzw. beim schliessen des Formulars soll eine Sicherheitsabfrage erfolgen.
Meine Frage:
wie kriege ich sicher heraus, wann sich Felder verändern?
Aktuell habe ich mich in die Ereignisse "Textchanged" oder "Validating" gehängt und dort mühselig alle Textfelder mit dem zugehörigen Objekt-Feld verglichen. Ergibt sich irgendwo eine Veränderung, dann wird der Button enabled, ansonsten disabled.
Dummerweise lösen die Ereignisse zu früh aus! Wenn meine Prüf-/Vergleichsroutine durchlaufen wird, fehlt immer der letzte Buchstabe des aktellen Feldes. Die letzte Eingabe in Textfeld.Text ist also in dem Moment noch nicht verarbeitet.
Das muss doch besser gehen?
Wie macht ihr das so?
Als Alternative hätte ich auch noch die DevExpress-Komponenten zur Verfügung. Da gibt es etliche Properties mehr, aber da fehlt mir die Übersicht, welche hier greifen würden.
Und ein umfangreiches Winform auf DevExpress-Komponenten umzustellen habe ich mir bisher erspart...
Ciao,
N.
Ich habe hier ein größeres Dialogformular mit etlichen Textfeldern und einem Grid. (VS2008, C#, .NET 2.0)
Die Daten stammen teilweise aus verschiedenen DB-Tabellen (SQL-Server), teilweise auch zur Laufzeit durch das Programm berechnet. Daher habe ich keine Felder irgendwie an die DB gebunden, sondern alle erst in einem Objekt gesammelt und dann manuell in die Textfelder übertragen.
Nun möchte ich, dass dann, wenn der Benutzer in den Feldern Änderungen vornimmt, das Formular in einen "Editmodus" wechselt. Es soll also ein"Speichern"-Button aktiv werden, bzw. beim schliessen des Formulars soll eine Sicherheitsabfrage erfolgen.
Meine Frage:
wie kriege ich sicher heraus, wann sich Felder verändern?
Aktuell habe ich mich in die Ereignisse "Textchanged" oder "Validating" gehängt und dort mühselig alle Textfelder mit dem zugehörigen Objekt-Feld verglichen. Ergibt sich irgendwo eine Veränderung, dann wird der Button enabled, ansonsten disabled.
Dummerweise lösen die Ereignisse zu früh aus! Wenn meine Prüf-/Vergleichsroutine durchlaufen wird, fehlt immer der letzte Buchstabe des aktellen Feldes. Die letzte Eingabe in Textfeld.Text ist also in dem Moment noch nicht verarbeitet.
Das muss doch besser gehen?
Wie macht ihr das so?
Als Alternative hätte ich auch noch die DevExpress-Komponenten zur Verfügung. Da gibt es etliche Properties mehr, aber da fehlt mir die Übersicht, welche hier greifen würden.
Und ein umfangreiches Winform auf DevExpress-Komponenten umzustellen habe ich mir bisher erspart...
Ciao,
N.
Comment