C# wie pushe ich ein Ergebnis einer DLL-Form an die Hauptform?

Status
Es sind keine weiteren Antworten möglich.
Dabei seit
März 2018
Beiträge
5
#1
Hey!
Ich habe jetzt ca 12 Stunden versucht es alleine zu lösen, ich schaff es aber einfach nicht..
Folgendes Problem:

Angenommen ich erstelle ein neues Projekt mit einer Windows-Form. Auf diese Form mach ich ein Textfeld und einen Button.
Der Button öffnet die Form einer DLL, die als Verweis eingebunden ist. Auf der Form der DLL sind 2 Textboxen und ein Button.
In die 2 Textboxen gebe ich 2 Zahlen ein und per Knopfdruck soll das Rechenergebnis in der Textbox der Hauptform ausgegeben werden.
Ich verzweifle daran total...
Return funktioniert ja nicht, da es keine Calling-Methode aus der 1. Form gibt oder?

Grüße
 

hans_meiser

Cadet 4th Year
Dabei seit
Jan. 2016
Beiträge
89
#2
Kann sein, dass ich das Problem nicht verstehe, aber koenntest Du nicht die Instanz der 1. Form an die 2. Form als Parameter vom typ 'Form1' (wie Du auch immer die Class nennst) uebergeben, und im code der 1. Form eine Funktion deklarieren, die Daten annehmen kann? Dann kannst Du von der 2. Form aus die Funktion in der 1. Form aufrufen und die Daten uebergeben.
 

Taradal

Newbie
Ersteller dieses Themas
Dabei seit
März 2018
Beiträge
5
#3
Kann sein, dass ich das Problem nicht verstehe, aber koenntest Du nicht die Instanz der 1. Form an die 2. Form als Parameter vom typ 'Form1' (wie Du auch immer die Class nennst) uebergeben, und im code der 1. Form eine Funktion deklarieren, die Daten annehmen kann? Dann kannst Du von der 2. Form aus die Funktion in der 1. Form aufrufen und die Daten uebergeben.
Hey,

Ich habe da dann das Problem, dass wenn ich die DLL schreibe einen Fehler bekomme, da ich ja auf die Instanz auf Form 1 zugreifen will, es ja aber noch gar keine Form 1 gibt. (Da ja die DLL erst nach dem schreiben als Verweis eingebunden wird.)
Ich müsste es also irgendwie auskommentieren und dann nach dem Einbinden als Verweis wieder "geltend machen". Allerdings weiß ich nicht, wie ich eine DLL bearbeiten kann nachdem ich sie eingebunden habe..
 
Dabei seit
Jan. 2011
Beiträge
3.718
#4
Es gibt 2 Möglichkeiten: Beim Klick auf OK der DLL-Form wird ein Event ausgelöst, das man abfangen kann. Oder die Form hat public Getters für die Textboxen, so dass man nur die Referenz auf die Form braucht. Ansonsten macht deine DLL-Form keinen wirklichen Sinn und man muss sich durch deren Controls hangeln bis man Textboxen findet.
 

Taradal

Newbie
Ersteller dieses Themas
Dabei seit
März 2018
Beiträge
5
#5
Es gibt 2 Möglichkeiten: Beim Klick auf OK der DLL-Form wird ein Event ausgelöst, das man abfangen kann. Oder die Form hat public Getters für die Textboxen, so dass man nur die Referenz auf die Form braucht. Ansonsten macht deine DLL-Form keinen wirklichen Sinn und man muss sich durch deren Controls hangeln bis man Textboxen findet.
Hey,
Das mit den Gettern könnte ich nochmal probieren, mit denen bin ich allerdings nicht ganz im Bilde wie die funktionieren, bisher hat alles was ich damit versucht habe nicht geklappt.
 

hans_meiser

Cadet 4th Year
Dabei seit
Jan. 2016
Beiträge
89
#6
An OP: wenn Du eine Projektdatei mit Quellcode usw. hast, die man leicht kompilieren kann, mach's zugaenglich und dann kann ma mal etwas experimentieren. Es wird sich schon was finden :)
 

hoppler

Cadet 3rd Year
Dabei seit
Sep. 2005
Beiträge
49
#7
Ein "hack" wäre das verwenden des .Tag elementes des Winform objektes. Da schreibst du dein objekt ergebnis rein und der aufrufer der dll form kann dann auf das tag elemtn zugreifen und das ergebnis lesen. ist eine "dreckige" lösung^^
 

Taradal

Newbie
Ersteller dieses Themas
Dabei seit
März 2018
Beiträge
5
#8
@hoppler
Mein Problem ist, dass ich sobald das Ergebnis feststeht es in die Textbox auf Form 1 geschrieben werden soll, nicht erst wenn ich einen Knopf drücke oder ähnliches.

@hans_meiser
Was genau und wie kann ich dir da was schicken? :)
 
Status
Es sind keine weiteren Antworten möglich.
Top