Feedback

C# - Löschen aller TextControls auf einer Form in C#

Veröffentlicht von am 4/16/2008
(3 Bewertungen)
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.
Abgelegt unter Control, leeren, Textbox, löschen.

3 Kommentare zum Snippet

nqfe schrieb am 2/26/2009:
Der Code löscht leider nur die Textboxen des aktuellen Containers.
Mit

private void TextBoxCLS(Control Steuerelement)
{
foreach (Control c in Steuerelement.Controls)
{
if (c is TextBox)
{
((TextBox)c).Clear();
}
if (c.HasChildren)
{
TextBoxCLS(c);
}
}
}

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.
nqfe schrieb am 2/26/2009:
Nachtrag:
Natürlich lassen sich auf diese Art und Weise alle Steuerelemente (einer Klasse) auffinden.
Felix Knorr schrieb am 8/27/2010:
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
 

Logge dich ein, um hier zu kommentieren!