Steuerelemente dynamisch ansprechen
-
Hallo,
mal angenommen ich habe auf einer Form 10 Textboxen (von textBox0 bis textBox9).
Will ich den Text der einzelnen Textboxen nun ausgeben, dann könnte ich folgendes schreiben:MessageBox::Show( this->textBox0->Text ); MessageBox::Show( this->textBox1->Text ); MessageBox::Show( this->textBox2->Text ); MessageBox::Show( this->textBox3->Text ); MessageBox::Show( this->textBox4->Text ); ...
Besser wäre es natürlich die einzelnen Textboxen über einen Index / eine Nummer anzusprechen. Das ganze würde dann in etwa so aussehen:
for(int i=0; i<=9; i++) { MessageBox::Show( this->textBox[i]->Text ); }
Könnt ihr mir sagen wie man Steuerelemente über einen Index anspricht ?
Vielen Dank,
mfg arena_blau-------------------------------------------
-
mach´n Array vom Typ TextBox und erzeuge neue Objekte in das Array dann kannst du die Elemente über einen Index im Array Ansprechen:
array <TextBox ^> ^_textboxArray = gcnew array <TextBox ^>(9); for(Int32 a=0; a<_textboxArray->Length; a++){ _textboxArray[a] = gcnew TextBox(); _textboxArray[a]->Text = "Dein Text"; _textboxArray[a]->Location = Point(20, a*30); //blablabla... this->Controls->Add(_textboxArray[a]); } MessageBox::Show(_textboxArray[2]->Text);
-
Hallo,
wie man neue Steuerelemente (dynamisch) anlegt, und diese dann mit einem Index abfragen kann, das weiss ich.Aber wie sieht es aus, wenn die Steuerelemente bereits vorhanden sind ?
(Also mit dem Form-Designer erstellt wurden). Kann man diese Steuerelemente
auch über einen Index ansprechen ?Vielen Dank,
mfg arena_blau-------------------------------------------
-
du meinst jetzt, nach dem builden abfragen wieviele Textboxen vorhanden sind und dann diese in einem Array speichern oder wie?
-
denjo303 schrieb:
du meinst jetzt, nach dem builden abfragen wieviele Textboxen vorhanden sind und dann diese in einem Array speichern oder wie?
nein ... er ist nur zu faul alle TextBox von Hand einem festes Array zu zuweisen
array<TextBox^> ^textboxen = gcnew array<TextBox^>[9]; // ..... textboxen[0] = TextBox1;
diese Marotten kommen wahrscheinlich von VB6 ... unter VB.NET wird das auch ständig gefragt
hand, mogel