Home > Artikel
Auf alle Controls eines Formulars zugreifen

Veröffentlicht von am Tuesday, April 29, 2003 7:05 AM

Der Zugriff auf die Steuerelemente eines Formulars ist nicht weiter schwer - sie sind alle in der Eigenschaft Control gespeichert. Schwieriger wird es, wenn weitere Container-Elemente auf dem Formular liegen.
In diesem Fall müssen alle enthaltenen Elemente nach Controls durchsucht werden. Das ist auf zwei Arten möglich: Iterativ, d.h. durch Zwischenspeichern aller enthaltenen Container-Elemente, oder rekursiv. Hier wird die rekursive Variante vorgestellt, die recht schnell programmiert ist. Sie gibt eine ArrayList aller enthaltenen Steuerelemente zurück, wobei auch das Startelement angegeben werden kann. Um alle auf einer Form enthaltenen Steuerelemente zu ermitteln, übergeben Sie einfach die Instanz des Formulars, z.B. mittels this. Ob ein Control ein Container ist, lässt sich leicht über die Eigenschaft HasChildren ermitteln. Auf die enthaltenen Steuerelemente können Sie wieder über die Eigenschaft Controls zugreifen. Die eigentliche Methode ist recht kurz:

private ArrayList GetControls(Control ctrl) {

  ArrayList arl = new ArrayList();

  if (ctrl.HasChildren) {
    foreach ( Control childCtrl in ctrl.Controls )
      arl.AddRange(GetControls(childCtrl));
  }

  arl.AddRange(ctrl.Controls);

  return arl;
}	
Der Zugriff auf die Controls ist recht einfach. Angenommen, Sie wollten nur auf alle Textboxen zugreifen, die enthalten sind, dann können Sie das so tun:

foreach (object o in GetControls(this)) {
  if (o is TextBox)
    (o as TextBox).Text = "Hallo";
}	  

Kommentar hinzufügen

Microsoft Community Guide
Neue Beiträge
  • Softwareentwickler C++ in der Automatisierung (m/w)
    Für ein Projekt in der Automatisierungstechnik suchen wir für unsere Niederlassung Süd in Nürnberg/Fürth mehrere Softwareentwickler mit Erfahrung in C++ zu Anstellung
  • .Net Entwickler m/w für CRM Software in Festanstellung
    Spannende Inhouse Stelle zu besetzen!
  • Sharepoint Koordinator Inhouse (m/w) ab sofort gesucht
    Dringend Kandidaten für Sharepoint Aufgaben gesucht!
  •  

    DotNetPro Newsfeed
  • SearchMonkey im Beta-Test
    SearchMonkey ist die neue Suchmaschine von Yahoo, deren Ergebnisse Entwickler durch eigene Anwendungen beeinflussen können.
    mehr ...
  • Erstes Moonlight-Release erschienen
    Moonlight bringt die Funktionen von Silverlight 1.0 für Linux.
    mehr ...


  • Copyright © 2003 - 2007 .NET Developers Group München