有权一次清除表单中的所有字段吗?

时间:2016-04-01 16:18:21

标签: c# winforms

我刚开始学习C#,我想知道是否可以清除所有文本框的内容,例如在我的表单中。

我知道如何逐一清除,但这对我来说不切实际。

谢谢!

编辑:我发现我的回答非常感谢你

6 个答案:

答案 0 :(得分:4)

如果你只想清除TextBox es,你可以这样轻松地做到:

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

只会清除TextBox 上直接的所有Form而不是GroupBox内的PanelTextBox或任何其他容器。

如果您在其他容器中有private void ClearTextBoxes(ControlCollection controls) { foreach(TextBox tb in controls.OfType<TextBox>()) tb.Text = string.Empty; foreach(Control c in controls) ClearTextBoxes(c.Controls); } es,则需要递归:

ClearTextBoxes(this.Controls);

将其称为<jsp:include page="one.css"/> <jsp:include page="two.css"/> <jsp:include page="three.css"/>

答案 1 :(得分:2)

您可以使用以下循环清除活动表单中的所有文本框对象:

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

您还可以在函数内部使用循环并为其提供布尔返回值,以测试它是否已成功执行。

答案 2 :(得分:1)

我打赌你正在寻找类似于这个的解决方案:Foreach Control in form, how can I do something to all the TextBoxes in my Form?

如果控件是要清除它的TextBox,你想要做的是遍历窗体中的所有控件

答案 3 :(得分:1)

private void ClearTextBoxes(ControlCollection controls)
{
    foreach(control c in Controls)
        if(c is TextBox)
            c.Clear();
}

答案 4 :(得分:0)

如果您需要清除您想要的内容,可以使用“标签”。只需用“清除”标签标记您的控件:

            foreach (Control c in Controls)
        {
            if (c.Tag == "clear")

            {
                c.Text = string.Empty;
            }
        }

答案 5 :(得分:-1)

尝试一下:

Form.Controls.OfType<Textbox>().ToList().ForEach(t => t.Text = "");