[Windows Forms] Elemente aus Form anderer Klasse verfügbar machen
-
Hallo,
ich entwickle gerade ein GUI für eine Regelungseinrichtung, die mittels des COM Ports mit einem µC kommuniziert.
Dazu habe ich eine Klasse SerielleKommunikation erstellt, der ich im Konstruktor das Handle von der Form1 übergeben habe. Ich versuche nun mittels dieses Handles auf die Elemente wie z.B. Buttons und Textfelder zuzugreifen um Informationen über die Regelung dort sichtbar zu machen. Leider war dies nicht erfolgreich. Ich kann nicht auf die einzelnen Elemente zugreifen. Ich habe das Textelement, das ich bearbetn will, nun testweise in der Deklaration von private auf public gesetzt, aber dies half nicht. IntelliSense fand dieses Element nicht und der Compiler meckert, dass dies kein Element von System::Windows::Forms::Form sei (obwohl das ja eigentlich ja ein Element meiner Form1 Klasse ist)
Ich habe dann versucht die Headerdatei Form1.h zu includen. Gut macht ja Sinn. Nur bringt es da wieder nicht viel. Immer noch nicht gefunden..
Ich schrieb dann eine Set Funktionpublic: void SetConnectionStatusText(System::String^ Status){ this->Verbindungsstatus->Text = Status; }
nur die brachte auch kein Erfolg, denn auch die fand er nicht.
Ich versuchte mich nun dadrin, das Namespace der Form mit
using namespace GUI
einzubinden.
Aber diese wird nicht gefunden.Insgesamt also nun folgendes:
- Header datei von der Form in meine Klasse included,
- Handle vom Form mit den this Zeiger dem Konstruktor meiner Klasse übergeben
- Funktion auf Private gesetzt
- Namespace mit using bekanntgemacht.Was muss noch getan werden? Oder hate jemand eine ganz andere Idee?
Gruß
Bernhard N.
-
bernieserver schrieb:
IntelliSense fand dieses Element nicht und der Compiler meckert, dass dies kein Element von System::Windows::Forms::Form sei (obwohl das ja eigentlich ja ein Element meiner Form1 Klasse ist)
Form ist die Basisklasse deiner Form1-Klasse. Der ist dein Textfeld sicherlich nicht bekannt. Also mußt du ein Objekt vom Typ Form1 (nicht Form) übergeben oder mit delegates/Observer o.dgl. arbeiten.
-
Danke, ich habe es geändert, aber komme leider immer noch nicht weiter. Nun findet er den namespace aus der Form1.h nicht, obwohl der dort deklariert wurde.
Selbst IntelliSense findet den. Nur der Compiler meckert.
Mensch, da kann man verrückt werden..
Gruß
Bernhard
-
Zeig mal etwas mehr Code.
Wir werden das Ding schon wuppen.