URL: https://www.overclockers.at/coding-stuff/c_daten_zwischen_forms_austauschen_180887/page_1 - zur Vollversion wechseln!
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();
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.
Code:zweitesformular.ShowDialog(); /* Hier kannst du die Felder von zweitesformular zugreifen weil es schon geschlossen wurde, z.B. so: string val = zweitesformular.Name.Text; */
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
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