Controls dynamisch ansprechen

1. (nur für asp.net!) Unter asp.net gibt es die praktische Methode Control.Findcontrol(), welche anhand eines Control-Names das gewünschte Control zurückgibt.

Winforms kennt diese Methode leider nicht und so muss man selber Hand anlegen:

2. Man führt ein Hastable, dass mit gleichem Namen wie die Objekte auf die Objekte selber verweist. Geschickt eingebaut lässt sich die Sache sogar automatisieren. Ein gutes Beispiel dazu findet sich hier: http://www.vpsw.com/ControlbyName.aspx

3. Man packt die Controls ganz einfach in einen Array:

private

Textbox[] mybox;
mybox =
new Textbox[10];
for (i=0;i<10;i++)
  {
  this.myBox[i] = new System.Windows.Forms.Textbox();
  this.Controls.Add(myBox[i]);

  }

Der Nachteil an letzterer Variante ist halt, dass man über VS.net keinen Zugriff auf die jeweiligen Controls (z.B. deren Position) mehr hat.

Print | posted @ Tuesday, July 06, 2004 12:17 PM