Messages zwischen Forms / Datentransfer
-
Viel über Delegates EventHandlers etc. gelesen und lange nach passenden Beispielen gesucht, doch immer noch nicht richtig klagekommen.
Ich will berechnete Ergebnisse aus verschiedenen Forms (double aufbereitet in textboxes) in eine weitere Form übernehmen. Es gibt also Form1, Form2, Form3. Dabei sollen Form1 und Form2 liefern und mitteilen, wann die Berechnungen zur Übernahme nach Form3 fertig sind.
Zur Zeit handle ich das ohne Mitteilung über Werte einer statischen Klasse. Das läuft zwar, ist aber nicht C#-gerecht. Wie macht man das besser über Delegates, am besten gleich über eine eigene Klasse, die auch für andere Zwecke angepasst werden kann?
-
Hallo,
entweder aktiv über Properties abfragen oder aber passiv durch Events benachrichtigen lassen.
Einen generellen Artikel zur Form-zu-Form Kommunikation habe ich unter http://www.bitel.net/dghm1164/programming/Kommunikation_von_2_Forms.html veröffentlicht (am Anfang sind ersteinmal typische Anfängerfehler aufgelistest, aber etwa in der Mitte geht es los mit den verschiedenen Form-Kommunikationen).In deinem Fall würden sich also Events anbieten, d.h. in Form1 und Form2 erstellst du je ein passendes Event und rufst es nach der Berechnung auf. Und Form3 abonniert diese Events und behandelt dann die berechneten Werte.
Ganz unten bei meinem Artikel gibt es auch "PersonManagement" als C#-Beispielapplikation zum Download (soweit ich mich erinnere, habe ich bei den Settings eine Vorschau implementiert, welche mittels Events arbeitet).
-
Danke, die Beschreibungen sehen sehr ordentlich aus! Besonders die Fehlermöglichkeiten sind gut beschrieben, ich finde sie in meinen bisherigen Ansätzen nahezu alle wieder. Ich werde dann am besten mit Events arbeiten. Alle beteiligten Forms sollen von einer MainForm in beliebiger Reihenfolge und Anzahl als eine ParentForm und mehreren alternativen ToolForms aufgerufen werden.
-
Freut mich, daß ich dir (wiedermal) helfen konnte