mk0 hat folgendes geschrieben: |
| Soll Form1 immer offen bleiben aber bei einer Eingabe in Form 1 öffnet sich eine neue Form (Form 3 in diesem Fall). |
Verstehe ich es richtig, dass Form1 das "Ausgangsformular" ist, z.B. das Hauptformular, und geöffnet bleibt?
mk0 hat folgendes geschrieben: |
| Ich möchte nun eine Variable aus Form1 in Form 3 nutzen. Dazu habe ich schon einen Konstruktur erstellt nur weiß ich nicht wie ich eine Beziehung zur Form 1 herstelle |
Überhaupt nicht, GANZ UND GAR NICHT! Das rufende Formular darf Zugriff auf das "abhängige" Formular haben, aber nicht umgekehrt! Es gibt allenfalls Situationen, in denen eine Ereignisroutine des rufenden Formulars dem abhängigen als EventHandler übergeben wird, sodass das abhängige Formular mit diesem Ereignis etwas im rufenden Formular machen kann.
Die Übergabe eines Wertes von Form1 an Form3 geht immer einfach, z.B. so:
C#-Quelltext
1: 2: 3: 4:
| Form3 newform = new Form3(); newform.Init(value); Form3 newform = new Form3(value); |
Wenn das abhängige Formular per
ShowDialog() geöffnet wird, geht das Lesen eines Wertes ebenfalls einfach:
C#-Quelltext
1: 2: 3:
| if (newform.ShowDialog() == DialogResult.OK) { value = newform.Clicks; } |
Wenn das abhängige Formular per
Show() geöffnet wird, muss das Auslesen des Wertes über einen EventHandler gesteuert werden:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| newform.Init(myEventHandler); private void myEventHandler(object sender, MouseEventArgs e) { value = e.X; } |
Dabei muss myEventHandler im Form3 in einer lokalen Variablen registriert werden; die Methode zu dieser Variablen wird bei Bedarf aktiviert mit "e.X = Clicks".
Ich hoffe, ich kann etwas helfen. Jürgen