Einfacher Zugriff auf ähnliche Variablennamen
-
Hallo,
in Visual C++ 2005 Express habe ich 30 groupBoxen: groupBox1, groupBox2, ..., groupBox30. Außerdem ein String-Array names[30].
Gibt es eine Möglichkeit den groupBoxen jeweils den zugehörigen Eintrag aus dem array als Text zu geben, ohne alle 30 Einträge einzeln zuzuordnen?
groupBox1->Text = names[0]; //... groupBox30->Text = names[29];
funktioniert zwar, ist aber aufwändig. Meine Frage ist, ob man die groupBoxen ähnlich einem array ansprechen und das dann mit einer for-Schleife erledigen kann.
cadaei
-
Du kannst über die Controls laufen, prüfen ob es eine checkbox ist und die werte zuweisen. Da du eine bestimmte reihenfolge brauchst, musst du dann ne auswertung schreiben.
ob sich der Aufwand lohnt ist ne andere sache.
-
cadaei schrieb:
Meine Frage ist, ob man die groupBoxen ähnlich einem array ansprechen und das dann mit einer for-Schleife erledigen kann.
Kann man schon!
Ist eben nur die Frage, ob die Anzahl immer die gleiche ist. Wenn ja kannst das ja über'n Code in ein Array packen und dann in ner Schleife abklappern. Oder du legts die GroupBoxen gleich dynamisch an, sprich nicht über den Designer, sondern über den Quellcode. Dann ist's eh geschickter, die gleich in ein Array zu packen. Allerdings musst die dann "von Hand" positionieren usw., was bissl nervig ist (oder Quellcodeteile aus nem alten Projekt kopieren, wo Position und Größe passen! )array<GroupBox^>^ myArrayGrpBoxes = gcnew array<Groupbox^>(nAnzahl)
-
NewtonsLaw schrieb:
Ist eben nur die Frage, ob die Anzahl immer die gleiche ist. Wenn ja kannst das ja über'n Code in ein Array packen und dann in ner Schleife abklappern.
Wie meinst du das genau? Die Anzahl ist immer gleich.
-
Du legst dir eben ein array an, dass du als private in deiner (denk mal) Form1 deklarierst:
private: array<GroupBox^>^ arrGrpBoxes = {GroupBox1, Groupbox2, ....};
Weiß grad nicht auswendig ob der Quellcode so richtig ist, aber in die Richtung müsste es gehen (ansosnten bei MSDN mal nach der korrekten Deklaration/Definition von arrays schauen!)