mit externer Klasse auf public WindowsForm Funktion zugreifen.
-
Hallo,
ich möchte aus einer von Form.h erstellten Klasseninstanz(Test_Klasse) eine Funktion(BeispielFunktion) aufrufen, die sich wiederrum in Form.h befindet.
Beim erstellen der Instanz, gebe ich eigentlich via this die Adresse der Form1-Klasseninstanz mit. Nur kann ich nun in meiner Klasse nicht wie üblich auf die public Funktion innerhalb von Form.h zugreifen.
Geht das überhaupt, bzw. was mache ich falsch?Form1.h
#pragma once #include "Test_Klasse.h" namespace Beispiel { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// Zusammenfassung für Form1 /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); klasse = gcnew Test_Klasse(this); } public: void BeispielFunktion(void) { // Mach irgendetwas } private: Test_Klasse^ klasse; ...
Test_Klasse.h
#pragma once using namespace System; using namespace System::Windows::Forms; ref class Test_Klasse { public: Test_Klasse(Form^ x); private: Form^ form_rev; };
Test_Klasse.cpp
#include "StdAfx.h" #include "Test_Klasse.h" Test_Klasse::Test_Klasse(Form^ x) { this->form_rev = x; // Funktionsaufruf in Form1.h //form_rev->BeispielFunktion(); }
-
#pragma once using namespace System; using namespace System::Windows::Forms; /* Oder mittels include */ namespace Beispiel { ref class Form1; } ref class Test_Klasse { public: Test_Klasse(Beispiel::Form1^ x); private: Beispiel::Form1^ form_rev; };
#include "StdAfx.h" #include "Test_Klasse.h" Test_Klasse::Test_Klasse(Beispiel::Form1^ x) { this->form_rev = x; // Funktionsaufruf in Form1.h form_rev->BeispielFunktion(); }
-
Also die Referenzübergabe an die Instanz klappt wunderbar, nur kann ich die eigene Funktion nicht aufrufen.
form_rev->BeispielFunktion();
Wenn ich mir im Debugmodus den Inhalt der Referenz anschaue, sehe ich alle erstellten Forms, nur halt nicht die BeispielFunktion.