Dynamische Labels??
-
Hi zusammen,
ich möchte Beispielsweise 10 Labels in einer Schleife 'füttern'.
for (int i=0; i<10; ++i){
this->labeli->Text = "Testtext"; //Das kann nicht funktionieren
}
Anstatt z.B. label1 habe ich zur Demo labeli geschrieben, damit Ihr wisst, was ich machen möchte.
Kann man auf so eine ähliche Weise 10 labels mit dem Text "TestText" füllen oder muss ich wirklich jedes Label separat ansprechen?
Wenn das geht, wie muss die Zeile dann wirklich aussehen?
-
Wenn schon dann so irgendwie:
this->label[i]->Text = "Testtext";
-
JustSomeCoder schrieb:
Wenn schon dann so irgendwie:
this->label[i]->Text = "Testtext";
Danke, das funktioniert leider nicht, habe ich schon probiert.
-
Fehlermeldung???
-
uwe_2 schrieb:
Danke, das funktioniert leider nicht, habe ich schon probiert.
Über die Toolbox der Entwicklungsumgebung kannst Du, soweit ich weiß, keine Label-Arrays erstellen. Du musst die von Hand deklarieren, erzeugen, attributieren etc.
Gruss
foo
-
denjo303 schrieb:
Fehlermeldung???
Fehler 1 error C2039: 'label': Ist kein Element von .......
foodax: Danke für die Info, werde mal sehen, was ich dazu rausfinden kann.
-
mach die Ein Array vom Typ Label
array <Label ^> ^labelArray = gcnew array <Label ^>(10);
erzeuge die Labels im Array
for(Int32 a=0 ; a<labelArray->Length ; a++){ labelArray[a] = gcnew Label(); }
und jetzt kannst du über den Index (labelArray[index]) in schleifen oder einzeln die Labels ansprechen.
for(Int32 a=0 ; a<labelArray->Length ; a++){ labelArray[a]->Text = "dein Text"; }
-
Vielen lieben Dank, das funktioniert sehr gut.
-
@denjo303 Warum zwei Schleifen?
Und nach der Programmierkunst dürftest Du keine Labels auf Deiner Form sehen.
Weil zwar eine Instanz auf jedes Label angelegt wird, aber die Labels werden nie erzeugt.
Wenn schon eher so...for(Int32 a=0 ; a<labelArray->Length ; a++) { labelArray[a] = gcnew Label(); labelArray[a]->Text = "dein Text"; labelArray[a]->Location = System::Drawing::Point(10,a*35);//Position setzen Controls->Add(labelArray[a]);//Label erzeugen }
-
war ja nur ein beispiel wie man die labels ansprechen kann. vom erzeugen war ja nicht die rede. die zwei schleifen hab ich nur zur übersichtlichkeit geschrieben. man arbeitet sich schneller rein wenn man kare linien hat.
-
Frank der Checker schrieb:
@denjo303 Warum zwei Schleifen?
Und nach der Programmierkunst dürftest Du keine Labels auf Deiner Form sehen.
Weil zwar eine Instanz auf jedes Label angelegt wird, aber die Labels werden nie erzeugt.
Wenn schon eher so...for(Int32 a=0 ; a<labelArray->Length ; a++) { labelArray[a] = gcnew Label(); labelArray[a]->Text = "dein Text"; labelArray[a]->Location = System::Drawing::Point(10,a*35);//Position setzen Controls->Add(labelArray[a]);//Label erzeugen }
Danke! Klar, die Labels mussten noch erzeugt werden, das war aber kein Problem.
Dein Code funktioniert auch.