Visual C++ Objekte mit Variable ansprechen.
-
Hallo zusammen,
ich habe darüber schon im Netz gesucht, aber noch nichts gefunden.
Und zwar möchte ich Objekte, in meinem Fall genauer eine bzw. mehrere PictureBoxen ansprechen. Diese haben zum Beispiel den Namen "Picturebox1" "Picturebox2"... usw. Ich möchte aber wie schon im Titel gesagt die Picturebox mit einer Variable ansprechen. Das habe ich mir folgendermaßen vorgestellt.
Ich habe 50 Pictureboxen, in diese möchte ich mittels einer for Schleife Bilder laden. Dazu habe ich im Kopf der for Schleife die Variable x die immer um eins hochgezählt wird. Nur weis ich nicht wie ich das in Visual C++ anstelle, mittels dieser Variable die PictureBox anzusprechen.
Ich VB bzw C# ist das einfacher, da sieht das z.B. so aus:
VB:Me.Controls("Picturebox" + x).Image = "..."
MfG
Christian
-
Wahrscheinlich willst du ein
std::array<>
oder einenstd::vector<>
.
-
Swordfish schrieb:
Wahrscheinlich willst du ein
std::array<>
oder einenstd::vector<>
.Wohl eher
List<..>^
...
-
Aaaah, /CLI *kotz*
-
Hallo,
erstmal Danke für die schnelle Antwort, aber ich verstehe nicht was du genau meinst. Meinst du vielleicht die Picturebox als array. Wenn ja wie mach ich das?
-
ChristianW92 schrieb:
Hallo,
erstmal Danke für die schnelle Antwort, aber ich verstehe nicht was du genau meinst. Meinst du vielleicht die Picturebox als array. Wenn ja wie mach ich das?Das mit der Liste oder dem Array kann man machen... das würde so aussehen, dass du alle PictureBox-Referenzen in eine Liste packsts - so kannst du dann in einer Schleife alle PictureBox-Referenzen gleich behandeln.
Dein gezeigten Code dürfte in C++/CLI etwa so aussehen, was natürlich einem anderen Lösungsansatz entspricht:
this->Controls("Picturebox" + x)->Image = "..."
Edit: Wurde noch nicht erwähnt... C++/CLI, inbesondere im Zusammenhang mit Windows Forms, ist meistens nicht die richtige Wahl ausser es handelt sich um geforderte Interoperabilität. So gibt es z.B. beim neusten Visual Studio kein Forms Designer mehr.
-
Der Code den du gepostet hast, sollte der so funktionieren oder muss ich da noch was dazuschreiben zwecks der von dir angesprochenen Liste.
Der Code so im VS funktioniert nämlich nicht, das hatte ich auch schon mal probiert.
-
Naja, ich habe nicht umsonst "dürfte etwa so aussehen" geschrieben... d.h. nein, der Code muss so nicht funktioneiren - aber es sollte dir eine Idee geben.
ChristianW92 schrieb:
Der Code so im VS funktioniert nämlich nicht, das hatte ich auch schon mal probiert.
Dann ist es immer sehr hilfreich, wenn du hier exakt den Code zeigst, der Probleme macht - dazu noch die exakte (=Copy+Paste) Fehlermeldung. So kann dir besser geholfen werden.