Problem: In einem Form werden Daten nicht persistiert, die über an eine BindingSource gebundenes Control editiert wurden, wenn über einen Toolbar- oder Menu-Button das Speichern ausgelöst wird.
Ursache: Toolbars oder Menüs wechseln den Focus nicht. Das ValidateEvent im Control wird deswegen nicht ausgelöst und kann seine Änderungen nicht an die BindingSource schicken. Der EndEdit-Aufruf auf der BindingSource ist dann wirkungslos.
Lösung: Bevor das Speichern über ein Event aus einem Toolbar- oder Menüpunkt ausgelöst wird, muss dort explizit der Fokus geholt werden über die Focus()-Methode. Danach sorgt ein Aufruf der EndEdit-Methode auf der BindingSource auch dafür, dass die eingebenen Daten in die Quelle (DataSource/DataTable) gelangen.
Abonnieren
Kommentare zum Post (Atom)
Keine Kommentare:
Kommentar veröffentlichen