C# .. Daten zwischen Forms austauschen

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_daten_zwischen_forms_austauschen_180887/page_1 - zur Vollversion wechseln!


XeroXs schrieb am 02.06.2007 um 16:44

Hallo erstmal

Also ich habe folgendes Problem.. Google konnte mir da auch nicht wirklich weiterhelfen, deshalb hoffe ich mal ihr habt eine Ahnung ;)

Hab ein einfaches Windows-Programm (ist nur zu Übungszwecken) auf Knopfdruck wird ein zweites Form geöffnet mit

Code:
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?


AoD schrieb am 02.06.2007 um 16:58

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 schrieb am 04.06.2007 um 17:30

Code:
zweitesformular.ShowDialog();
/* Hier kannst du die Felder von zweitesformular
   zugreifen weil es schon geschlossen wurde, z.B. so:
string val = zweitesformular.Name.Text;
*/


Meltdown schrieb am 12.06.2007 um 22:29

Wahrscheinlich ist die Methode von AngelOfDeath besser (ich code noch nicht so lange in .net;)
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 schrieb am 15.06.2007 um 09:43

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.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2024