Zugriff auf Steuerelemente aus Klasse
-
Moin Moin.
Ich würde gerne auf die Steuerelemente meiner WinForm von einer Klasse aus zugreifen. Habe bisher ein property in Form1 erstellt, mit dem ich auf eine textBox zugreifen kann. Bis jetzt habe ich es allerdings nicht hinbekommen in der Klasse einen Verweis auf die Form1-Instanz zu erzeugen.Wie bekomme ich also einen Verweis auf die Form1-Instanz in meiner Klasse hin?
Vielen Dank im voraus.
-
Wenn es die Instanz schon gibt, dann musst Du den Verweis der Klasse mitgeben.
Wenn Du die Instanz neu anlegen willst (was ich bezweifle), dann kannst Du einfachForm1 ^frm = gcnew Form1(); frm->ShowDialog();
machen.
-
Vielen Dank für deine schnelle Antwort.
Ich bekomme es irgendwie nicht hin, den Verweis zu übergeben. Stehe ein wenig auf dem Schlauch.
Ich habe es so versucht, aber ich bekomme immer Fehler wegen dem ^.ref class CTest{ Form1 ^form; public: CTest(Form1 ^frm); ... } CTest(Form1 ^frm) { form = frm; }
Könntest du mich nochmal auf den richtigen Weg weisen?
Danke.
-
Fehlermeldung posten....
-
Folgende Fehlermeldungen werden ausgespuckt, wenn ich den Konstruktor wie oben beschrieben, ändere:
(12) : error C2143: Syntaxfehler: Es fehlt ';' vor '^'
(12) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
(12) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
(14) : error C2143: Syntaxfehler: Es fehlt ')' vor '^'
(14) : error C2143: Syntaxfehler: Es fehlt ';' vor '^'
(14) : error C2460: 'CTest::Form1': Verwendet gerade definiertes 'CTest'
Siehe Deklaration von 'CTest'
(14) : error C2059: Syntaxfehler: ')'
(14) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.Wobei Zeile 12 der Zeile 2 im obigen Codeschnipsel und Zeile 14 der Zeile 4 entspricht.
-
Wenn Du zwischen deklararion und definition trennst hilft Dir eine Forwärtsdeklaration alla
ref class Form1;
weiter. Wenn Du alles in einem Header hast, kann ein #include "Form1.h" helfen.
-
@Knuddlbaer
Vielen Dank für die Hilfe, es läuft nun.