Form1 greift auf Form2 zu, nur wie Form2 greift auf Form1 ?
-
Hallo, ich habe mit meiner Form1 auf Form2 zugegriffen um die Form zu öffnen.
Jetzt möchte ich von Form2 auf Form1 Items zugreifen nur wenn ich die Form1 von Form2 includiere, passiert von Form1 das:**************\Form1.h(1183) : error C2065: 'Form2': nichtdeklarierter Bezeichner
**************\Form1.h(1183) : error C2065: 'pForm2': nichtdeklarierter Bezeichner
**************\Form1.h(1183) : error C2061: Syntaxfehler: Bezeichner 'Form2'
**************\Form1.h(1184) : error C2065: 'pForm2': nichtdeklarierter Bezeichner
*************\Form1.h(1184) : error C2227: Links von "->ShowDialog" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
/
Form2^ pForm2 = gcnew Form2;
pForm2->ShowDialog();
*/
-
Technisch musst Du so vorgehen:
1. Trenne dein Code von Form1 und Form2 in Header und Source Files auf
2. Mache in Form1.h eine vorwärts-Deklaration von Form2 und umgekehrt.
3. Inkludiere in Form1.cpp das File Form2.h und umgekehrt
4. Mache die gewünschte Instanz von Form1 in Form2 bekannt und umgekehrt. Das geht z.B. durch übergeben der entsprechenden Instanz bei einem Funktionsaufruf.Allerdings:
Technisch geht das, erzeugt jedoch eine grosse Abhängigkeit zwischen Form1 und Form2. Besser ist es dies mit entsprechenden Interfaces zu lösen. Ev. auch mit Events.