Datenaustausch zwischen Forms
-
Hallo zusammen,
ich habe eine Frage an euch. Und zwar will ich von einer Form auf eine andere Form zugreifen (und umgekehrt). Also so: Form1 <-> Form2Nachdem ich es selbst nicht hinbekommen habe, habe ich mal in den FAQ's nachgesehen. Dort bin ich auf folgenden Beitrag gestossen:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-169328.htmlHier ist das Beispiel das ich in meinen Code eingebunden habe (in beide Forms):
ref class ZielForm1 : public Form { // ... public: property String ^MeinText { String^ get() { return this->textBox1->Text; } void set(String^ value) { this->textBox1->Text = value; } } };
Damit ich Zugriff auf die jeweils andere Form habe, habe ich in Form1 "Form2.h" includet und in Form2 "Form1.h" includet. Dabei bekomme ich aber immer dieses Fehlermeldung bei der Programmerstellung: "Zu viele Headerdateien: Tiefe = 1024".
Wie kann ich dies verhindern ?
Danke,
mfg philipp_s
-
-
Hallo,
"#pragma once" verwende ich bereits.In Form1 habe ich nun diesen Code geschrieben (in die ersten zwei Zeilen):
#pragma once #include "Form2.h"
Über einen Button kann ich so Form2 öffnen:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Form2 ^lf; lf = gcnew Form2(); lf->Show(); }
Dies funktioniert auch. Nur wenn ich in Form2 die "Form1.h" include, dann bekomme ich eine Fehlermeldung. Dies ist der Code (zum includen):
#pragma once #include "Form1.h"
Dies ist die Fehlermeldung:
...Form1.h(133) : error C2065: 'Form2': nichtdeklarierter BezeichnerKönnt ihr mir sagen was ich da falsch mache ?
Danke,
mfg philipp_s
-
Wenn Du gegenseitig die Forms verwenden willst, dann darfst Du die *implementierung* der Methode *nicht* in der h-Datei machen, sondern dies *musst* Du in der cpp-Datei machen!
Und in der cp-Datei musst Du das entsprechend andere "formx.h" einbinden. Dann geht es.