Hallo ich habe in einem Programm jetzt noch eine weitere Form hinzugefügt und würde an ihr(Form2) gerne Werte aus Form1 weitergeben. Wie mache ich das?
Fuzzi59 schrieb: > Wie mache ich das? dafür sollte man sinnvollerweise Programmlogik und GUI von einander Trennen. Man legt also eine neu Klasse an wo das eigentliche Programm mit seinen Daten drin steckt. Die beiden Forms bekommen jeweils eine Referenz von den Programmobjekt und können darüber Daten austauschen.
Beispiel: Form1: Eingabe einer Zahl in einer Textbox Form2: Benutzung der Textbox aus Form1 Das bedeutet ich möchte in Form1 eine Textbox (und auch zwei Radiobuttons) ändern und in Form2 passiert dann etwas.
Du kannst dem Konstruktor von Form2 die Werte von Form1 übergeben und dann in Form2 damit arbeiten.
Na du ergänzt den Konstruktor deiner zweiten Form um die Variablen, die du dort benötigst und übergibst sie von Form1 aus? ...oder du ergänzt in Form2 eine Funktion, die du von Form1 nach dem Erzeugen von Form2 aufrufst und Form2 darüber die Daten gibst.
Fuzzi59 schrieb: > Ja, aber ich will wissen, wie gerade das funktioniert. z.B. könntest du einen zweiten Konstruktor anlegen, dem du dann auch Werte übergibst. (natürlich kannst du auch gleich den ersten ändern)
1 | public Form1() |
2 | {
|
3 | InitializeComponent(); |
4 | }
|
5 | |
6 | public Form1(string strWert) //dieser Konstruktor übernimmt auch einen Wert) |
7 | {
|
8 | InitializeComponent(); |
9 | |
10 | }
|
Beim Aufruf von new Form1() kannst du jetzt auch new Form1(string strWert) wählen.
So weit bin, aber in Form2 bekomme ich die Werte trotzdem nicht
@Fuzzi59 hast du dir überhaupt die Mühe gemacht und meinen Link angeklickt?
In welcher Form willst du denn den Wert? Wenn du ihn in Form2 haben willst, musst du natürlich den Konstruktor der Form2 erweitern. (so wie den der Form1) Dort, wo du Form2 instanzierst (.....=new Form2() musst du dann den erweiterten Konstrukor new Form2(int Zeit) verwenden.
:
Bearbeitet durch User
Hätte mir besser das Beispiel genauer angeguckt, aber jetzt funktioniert es so wie es auch soll. Danke für die vielen Antworten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.