C# .. Daten zwischen Forms austauschen
XeroXs 02.06.2007 - 16:44 4821 4
XeroXs
Vereinsmitglieddoh
|
Hallo erstmal Also ich habe folgendes Problem.. Google konnte mir da auch nicht wirklich weiterhelfen, deshalb hoffe ich mal ihr habt eine Ahnung ![;)](/images/smilies/wink.gif) Hab ein einfaches Windows-Programm (ist nur zu Übungszwecken) auf Knopfdruck wird ein zweites Form geöffnet mit Form2 zweitesformular = new Form2();
zweitesformular.Show();
soweit so gut.. in diesem form möchte ich jetzt etwas eingeben, und die Information zurückgeben ans erste Formular... das Problem hier ist, ich kann nicht auf die daten (variablen etc) des ersten formulars zugreifen... (und ich kann auch nicht vom erstten auf zweite zugreifen, weil das event, das das form aufgemacht hat ja auch schon vorbei ist) Vielleicht hat hier ja jemand Vorschläge/Anregungen?
Bearbeitet von XeroXs am 02.06.2007, 16:46
|
AoD
aka AngelOfDeath
|
Zuerst solltest du eine Trennung von Daten und UserInterface machen. Sprich ein dll Projekt für die Daten und ein WinForms Projekt. Im Datenprojekt hast du dann nicht nur die Klassen mit den Daten sondern auch Manager die dir neue Objekte anlegen, löschen etc. Von jedem Managertyp gibt es genau eine Instanz (public static) Und auf diesen greifen beide Forms zu. Das Popup holt sich das Datenobjekt aus dem Manager und befüllt es. Das Hauptformular kann sich dann das selbe Objekt ebenfalls holen.
|
gue
Addicted
|
zweitesformular.ShowDialog();
/* Hier kannst du die Felder von zweitesformular
zugreifen weil es schon geschlossen wurde, z.B. so:
string val = zweitesformular.Name.Text;
*/
|
Meltdown
Bloody Newbie
|
Wahrscheinlich ist die Methode von AngelOfDeath besser (ich code noch nicht so lange in .net ![;)](/images/smilies/wink.gif) Jedoch mach ich das Folgendermasen: Form2 zweitesformular = new Form2(this); zweitesformular.Show(); und im form2 : form1 f1 = null; public form2 (f1) this.f1= f1; Ist höchstwahrscheinlich Pfusch aber die imho einfachste Methode
|
Wannabe2k
Little Overclocker
|
also meiner ansicht nach is das wie du so schön sagst "pfusch" - es funktiniert zwar hat aber ned viel mit schönen programmierstil zu tun.
der "beste" weg da informationen auszustauschen ist mittels delegates und events die du zwischen den beiden fenstern einfach austauschst.
|