2016-04-01 4 views
2

Ich habe gerade angefangen, C# zu lernen, und ich frage mich, ob es möglich ist, den Inhalt aller Textfelder zum Beispiel in meinem Formular zu löschen.Sie können alle Felder in einem Formular gleichzeitig löschen?

Ich weiß, wie man eins nach dem anderen löscht, aber es ist nicht praktisch für mich.

danke!

edit: Ich fand meine Antwort danke Ihnen allen sehr viel

+0

_foreach (TextBox t auf yourForm.Controls.OfType ()) t.Text = ""; _ – Steve

+0

Tag es WPF oder WinForms – Paparazzi

+0

oder ASP.Net/ASP.Net MVC ... –

Antwort

2

können Sie die folgende Schleife verwenden, um alle Textobjekte in der aktiven Form zu löschen:

foreach (Control c in this.Controls) 
{ 
    if (c.GetType() == typeof(TextBox)) 
    { 
     c.Clear(); 
    } 
} 

Sie können auch die Schleife in einer Funktion verwenden und einen Booleschen Rückgabewert geben zu testen, ob es successfuly ausgeführt wurde.

+0

Ich lese das irgendwo, denke ich, habe mich aber nicht daran erinnert, das ist genau das was ich gesucht habe. Kann ich damit alle Textfelder zum Beispiel in allen Formularen löschen? –

+1

edit: nicht sicher, tatsächlich, versuchen, das Schlüsselwort 'this' in' this.Controls' zu entfernen, könnte den Trick tun. Vielleicht kann dir eine andere Person dabei helfen – Angelo

4

Wenn Sie nur TextBox es Sie können es leicht, so löschen möchten:

foreach(TextBox tb in this.Controls.OfType<TextBox>()) 
    tb.Text = string.Empty; 

Aber das wird nur klar alle Die TextBox es sind direkt an der Form und nicht innerhalb einer GroupBox oder Panel oder einem anderen Container.

Wenn Sie TextBox es in andere Behälter haben müssen Sie Rekursion:

private void ClearTextBoxes(ControlCollection controls) 
{ 
    foreach(TextBox tb in controls.OfType<TextBox>()) 
     tb.Text = string.Empty; 
    foreach(Control c in controls) 
     ClearTextBoxes(c.Controls); 
} 

Rufen Sie diese wie ClearTextBoxes(this.Controls);

+0

Ich wusste nicht, dass Sie OfType verwenden können, das ist sicherlich neu für mich, sehr interessant, vielen Dank sir (ich kann nicht stimmen Sie sadely) –

+0

upvoted :) vielen Dank! –

Verwandte Themen