Objektnamen aus Strings zusammensetzen

C

Calisto

Hallo zusammen,

hier ein echtes Anfänger-Problem:
Ich möchte das Visible-Attribute mehrerer Webcontrols verändern (Textbox1, Textbox2 usw.). Dazu möchte ich eine For-Schleife verwenden, in der das jeweilige Objekt angesprochen und das Attribut gesetzt wird. Dazu hatte ich folgende Idee: zusammensetzen des Objektnamens aus einem String "Textbox" und der entsprechenden Laufvariable aus der For-Schleife. Mein Versuch sah folgendermassen aus:

for(int j=1; j<6; j++){
String AktuelleTextbox = "Textbox" + j.ToString();
AktuelleTextbox.Visible = true;
}

Das Problem ist, man kann auf einen String nicht das Visible-Attribut anwenden, wie kann ich den String jetzt als Objekt benutzen????
Im Voraus vielen Dank für eure Mühe,
Calisto
 
Oiiii
ganz falsch.

Les dich bitte nochmals in OOP ein insbesondere Polymorphie.

Du hast doch automatisch eine Kollektion deiner WebForms zusammen in der Page Klasse.
Die du aufgrund der Polymorphie alle ansprechen kannst.

Schau dir mal in der Page Klasse:

public virtual ControlCollection Controls {get;}

an.
Dann bekommst du eine ControlCollection zurueck diese kannst du dann, da sie das Interface IEnumerable enthaelt, mit foreach durchlaufen.

Code:
foreach(Control temp in this.Controls)
{
   temp.Visible = true;
}

Insgesammt laeuft alles ueber polymorphie. Drum les dich da bitte nochmals genau rein das ist mit das wichtigste bei C# und ASP.net und mit einer der staerksten eigenschaften
 
Das ist C#? Ein int ist da eine Klasse? Bäh. Da bleib ich doch bei C++ ;)
Na ja, aber am besten verkriech ich mich wieder in's PHP-Forum, bevor ich den Zorn einiger C#-Anhänger hier auf mich ziehe ;)
 
Nebenbei bemerkt könntest du die Textboxen auch als Array definieren, dann sparst du dir den Umweg.
 
Original geschrieben von reima
Das ist C#? Ein int ist da eine Klasse? Bäh. Da bleib ich doch bei C++ ;)

Ja und nein :)
Ein int wird als nativ Wertetyp behandelt sobald mann aber Methoden des int wie z.b. myInt.ToString() aufruft wird der int automatisch in einer "Box" verpack (wie in Java die Wrapper Klasse) die Methode ausgefuehrt und dann wieder ausgepackt.

Ist eine nicht schlechte Sache :)
 

Neue Beiträge

Zurück