form aus anderer klasse ansprechen und umgekehrt.

andralin

Erfahrenes Mitglied
Hi Leute,

ich habe den Anwendungsfall das ich eine Form Klasse und ein Klasse mit Methoden die auch aus der Konsole genutzt werden nebeneinander laufen lassen muss.

Nun möchte ich das die Form an die Member de Objektes kommt und das Objekt an die Member der Form.

im Objekt wird die Form so aufgerufen:
Code:
WinForm = new System.Windows.Application();
WinForm.Run(new MainFormObject());

wenn ich nun danach in der Zeile mit WinForm.meinFeld.Text = "Irgendwas" versuchen will bekomm ich nicht mal .meinFeld vorgegeben. Also unbekannt. Kann mir hier jemand nen tip geben wonach ich suchen muss um weiter zu kommen?

cu s00n
andralin
 
Also deine Klasse sollte die Form definitiv nicht kennen. Daher hast du insgesamt zwei Wege:

a) Deine Klasse wirft Events, wenn Änderungen an den Eigenschaften vorgenommen werden. Diese Events können von der Form abgefangen und entsprechend behandelt werden.

b) Du verwendest ein Objekt, welches für den Datenaustausch verwendet wird. D.h. die Form erstellt eine Instanz und reicht eine Referenz an dein anderes Objekt weiter. Werden dort die Daten befüllt, sind diese automatisch auch in der Form über die Referenz verfügbar. Genauso umgekehrt.

Ein Beispiel sollte sich auch in unseren Tutorials finden.
 
Also deine Klasse sollte die Form definitiv nicht kennen. Daher hast du insgesamt zwei Wege:

a) Deine Klasse wirft Events, wenn Änderungen an den Eigenschaften vorgenommen werden. Diese Events können von der Form abgefangen und entsprechend behandelt werden.

b) Du verwendest ein Objekt, welches für den Datenaustausch verwendet wird. D.h. die Form erstellt eine Instanz und reicht eine Referenz an dein anderes Objekt weiter. Werden dort die Daten befüllt, sind diese automatisch auch in der Form über die Referenz verfügbar. Genauso umgekehrt.

Ein Beispiel sollte sich auch in unseren Tutorials finden.

OK, diese beiden Methoden waren mir bewusst. Aber ich habe es nun anders gelöst, mit Delegates, das heisst meine Klasse übernimmt eine bestehende Konsole oder erstellt eine neue oder eine Windows Form, je nach Anwendungsfall. Der kompliziertere Teil ist allerdings die Arbeit mit WPF, da muss ich alle Events hin und her reichen. Aber es läuft und noch dazu stabil. Lediglich mit den Animations aus dem WPF habe ich noch starke Probleme.

Danke für die schnelle Antwort.

Viele Grüße
Andralin
 
Zurück