Auf Steuerelemente zugreifen
-
Heho
Ich benutze bei meinem Projekt fürs Gui Windows Form und frage mich (bzw. euch ), wie kann ich in einer anderen Klasse auf Steuerelemente zugreifen?
Ich hab mein Gui in der Standard Form1.h Datei und will jetzt in meiner Klasse Lektionen, am Gui etwas ändern, womöglich auch neue Steuerelemente erstellen - geht das überhaupt?
Beispiel:
Bei einer Art Quiz habe ich ein Gui und verschiedene Frage"schwierigkeiten" in verschiedenen Klassen - z.B. Frage1, Frage2, Frage3.cpp und so weiter...
Wenn ich Frage1 irgendwie benutze, soll das Gui insofern verändert werden, als dass ein Label die Frage anzeigt (ob neues Label oder ein "altes" Label nur verändert wird, ist ja im Grunde wurscht) und es sollen 4 Antwortmöglichkeiten auf 4 Buttons stehen (ob die Buttons "alt" sind und nur verändert werden vom Text her, oder ob ich die dann neu erstelle ist ja im Grunde auch wurscht)
Ich hoffe, ich konnte euch mein Problem verständlich rüberbringen...
"Einfache" Frage: Geht mein Vorhaben überhaupt?
Gruß Zel
-
Falsches Forum oder weiß da keiner Bescheid?^^
-
Einfach gesagt du erstellst in einer Klasse (form1) deine Steuerelemente und in der Klasse möchtest du eine neue Klasse erstellen in der du die Steuerelemente veränderst?
Du kannst die "Hauptklasse" (form1) an die andere Klasse mit this übergeben und über das Objekt dann auf die Steuerelemente zugreifen.public andereKlasse(form1 form) { form.wasauchimmer;) }
andereKlasse ka = new andereKlasse(this);
Das ist das ganze in C#, falls du mit C++ programmierst müsste das so ähnlich gehen aber ich hab grade kein Beispiel hier...
-
Hallo Zel2491,
Klassen sollten niemals direkt auf GUI-Elemente zugreifen (Trennung von GUI und Logik)!
Ich hoffe, daß du für WinForms C# benutzt (und nicht etwa C++/CLI s. Windows Forms und Visual C++ MACHT KEINEN SINN!) - dann darfst du dir gerne mal mein Tutorial Kommunikation von 2 Forms dazu durchlesen (gilt auch für Forms und Klassen).Bei deinem Quiz solltest du eine Datenklasse erstellen, welche die Frage, die Antwortmöglichkeiten sowie die richtige Antwort (als Index) beinhaltet und diese dann in der GUI als auch den Logikklassen verwenden.
Und daß du für die verschiedenen Fragen verschieden Klassen erstellt hast, deutet auch auf schlechtes Design hin (sehe gerade, daß du .cpp geschrieben hast -> beachte dringendst obigen Link!).
-
Hab eure Antworten jetzt erst gelesen...^^
Hab das anders gelöst mit den Steuerelementen...ich greife halt nicht außerhalb der Klasse drauf zu - klappt auch ganz ordentlich^^
Ich muss leider C++/CLI WinForms nehmen...Unikurs C++..da haben wir nicht so die Wahl...^^ klappt dafür jetzt aber ganz gut - und mit den Fragen hab ich das eh anders geregelt...war auch ein schlechtes Beispiel weil ich eigentlich nen Gehörbildungstrainer programmiere und kein richtiges Quiz - also keine Angst^^ Ich hab nicht für jede Frage ne eigene Klasse Hab da nur eine Klasse für aus der ich meine Töne dann halt in verschiedener Reihenfolge etc aufrufe - aber danke für die Hilfe