Entwickler-Ecke
WinForms - [C#] FindComponent Methode?
masteroffinalfantasy - So 13.07.08 12:12
Titel: [C#] FindComponent Methode?
Moin Moin,
in Delphi gibt es ja die praktische FindComponent Methode... gibts sowas praktisches auch für C#?
Hab leider nichts auf Anhieb gefunden.
mfg
Moderiert von
Christian S.: Topic aus C# - Die Sprache verschoben am So 13.07.2008 um 12:18
Christian S. - So 13.07.08 12:19
In C# nicht, das ist nur die Sprache ;-)
Im Framework hat eine Form die Eigenschaft
Controls, welche man so ansprechen kann:
C#-Quelltext
1:
| Button meinButton = (Button) this.Controls["button1"]; |
Grüße
Christian
JüTho - So 13.07.08 13:36
Hallo,
Christians Antwort ist zwar korrekt, aber für die Praxis nicht ausreichend, da unter NET mit der Eigenschaft Controls immer nur eine Ebene erfasst wird. Entweder Du musst bei der Suche alle Controls rekursiv durchsuchen; oder Du benutzt die passende Methode in der richtigen Fassung (beachte den zweiten Parameter):
C#-Quelltext
1:
| Control[] found = this.Controls.Find("button1", true); |
Gruß Jürgen
masteroffinalfantasy - So 13.07.08 13:55
Danke euch beiden für die schnelle Hilfe :)
Problem gelöst :)
goldensurfer - Do 17.07.08 14:39
Habe gerade ein ähnliches Problem: ich will in einer Schleife durch alle Controls eines Formulars gehen und, falls das Formular ein Panel ist, weitere Aktionen damit anstellen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Control ctl = null; for (int i = 0; i < this.Controls.Count; i++) { ctl = this.Controls[i]; if (ctl is Panel) { MessageBox.Show(ctl.Tag.ToString()); } } |
Problem ist hier wie ganz oben beschrieben - ich bekomme nur die Controls, die direkt auf dem Formular liegen. Die Find-Methode kann ich nicht nehmen, da ich den Namen nicht kenne.
Weiß jemand eine Lösung, wie ich ohne Rekursion an alle Controls eines Formulars komme?
Danke!
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Kha - Do 17.07.08 14:58
goldensurfer hat folgendes geschrieben: |
| falls das Formular ein Panel ist |
Das könnte schwierig werden :mrgreen: .
Was spricht denn gegen Rekursion?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!