Задать вопрос
  • C# WinForm как очистить все TextBox-ы на форме ?

    StrangeAttractor
    @StrangeAttractor
    Надо заходить внутрь же. Вот простейший вариант модификации вашего кода:

    foreach (Control c in Controls)
    {
        if (c.GetType() == typeof (GroupBox))
            foreach (Control d in c.Controls)
                if (d.GetType() == typeof(TextBox))
                    d.Text = string.Empty;
    
        if (c.GetType() == typeof(TextBox))
            c.Text = string.Empty;
    }


    А вот как (примерно, на самом деле я бы сделал extension method) бы сделал я:

    private static void CleanAllTextBoxesIn(Control parent)
    {
        foreach (Control c in parent.Controls)
        {
            if (c.GetType() == typeof(TextBox))
                c.Text = string.Empty;
    
            if (c.GetType() == typeof (GroupBox))
                CleanAllTextBoxesIn(c);
        }
    }
    
    private void CleanAllTextBoxesButton_Click(object sender, EventArgs e)
    {
        CleanAllTextBoxesIn(this);
    }
    Ответ написан
    2 комментария