Sprache: C#
Mit dieser kleinen schleife, kann man auf einer Form, alle TextControls leeren, oder mit einem Alternativen Text versehen.
Läßt man den Filter weg, werden alle Textdartellenden Controls mit dem Text gefüllt den man (wie in meinem Beispiel) mit c.Text setzt ( auch Buttons, Labels usw.).
foreach (Control c in Controls)
{
if (c.Name.Contains(<Filter>))
{
c.Text = "";
}
}
// Mit <Filter> kann man eingrenzen, welche TextControls man leeren möchte.
// z.B. "tbx" als <Filter> einsetzen, leert man alle TextControls, welche "tbx" im Namen beinhalten.
foreach (Control c in Controls)
{
if (c.Name.Contains(<Filter>))
{
c.Text = "";
}
}
// Mit <Filter> kann man eingrenzen, welche TextControls man leeren möchte.
// z.B. "tbx" als <Filter> einsetzen, leert man alle TextControls, welche "tbx" im Namen beinhalten.
Alte URL:
/snippet/loeschen-aller-textcontrols-auf-einer-form-in-c/827
Der Code löscht leider nur die Textboxen des aktuellen Containers.
Mit
[code]
private void TextBoxCLS(Control Steuerelement)
{
foreach (Control c in Steuerelement.Controls)
{
if (c is TextBox)
{
((TextBox)c).Clear();
}
if (c.HasChildren)
{
TextBoxCLS(c);
}
}
}
[/code]
lassen sich alle Textboxen inc. aller Textboxen enthaltener Container leeren.
Beispielaufruf um die Textboxen auf einer Form zu leeren:
TextBoxCLS(this);
Übrigens ein Beispiel rekursiver Funktionsaufrufe.
Nachtrag:
Natürlich lassen sich auf diese Art und Weise alle Steuerelemente (einer Klasse) auffinden.
wäre die textbox alerdings in einer groupbox, bezweifel ich das diese methode funktioniert. man müsste eine rekursive methode schreiben, die bei einer groupbox sich selber wieder aufruft