2017-06-06 6 views
0

Ich habe ein Formular, das das my user control enthält. Wie alle dann Textbox dieser Benutzersteuerung löschen einen Knopf in meinem Hauptformular ## Heading ##C# wie man Textfelder der Benutzersteuerung vom Hauptformular löscht

+2

Winforms, ASP.NET, wpf, ...? Sie könnten eine öffentliche Methode 'ClearTextBoxes' in Ihrem Benutzersteuerelement bereitstellen, die Sie vom Hauptformular aus aufrufen können. Dann ist die Logik dort eingekapselt, z.B. wie:. 'this.Controls.OfType () .ToList() ForEach (t => t.Clear())' –

+0

Dank für die Idee .. foreach (Control x in panel3.Controls) { wenn (x ist supplierUI) { ((supplierUI) x) .Clear(); } } dieser Code funktioniert für mich. –

Antwort

1

Mit dieser Methode können alle Textfelder zu löschen, rufen Sie einfach es aus Ihrer Hauptform:

public void ClearTextBoxes(bool searchRecursively = true) 
{ 
    Action<Control.ControlCollection, bool> clearTextBoxes = null; 
    clearTextBoxes = (controls, searchChildren) => 
    { 
     foreach (Control c in controls) 
     { 
      TextBox txt = c as TextBox; 
      txt?.Clear(); 
      if (searchChildren && c.HasChildren) 
       clearTextBoxes(c.Controls, true); 
     } 
    }; 

    clearTextBoxes(this.Controls, searchRecursively); 
} 
Verwandte Themen