清除所有文本框(任何快捷方式)

时间:2011-08-11 23:36:53

标签: c# winforms

我有几个用于输入的文本框,然后还有几个用于结果的文本框。 是否有任何快捷方式可以清除表单上的所有条目?

例如aTextBox.Clear();

4 个答案:

答案 0 :(得分:8)

如果所有文本框都是表单的直接子项,则可以使用LINQ:

yourForm.Controls.OfType<TextBox>().ToList().ForEach(textBox => textBox.Clear());

答案 1 :(得分:1)

您需要循环所有表单控件并检查类型是否为textbox,然后.Text = string.empty

答案 2 :(得分:1)

var cntrlCollections = GetAll(this,typeof(TextBox));

       foreach (Control ctrl in cntrlCollections)
        {

            if (ctrl is TextBox)
            {
                ctrl.Text = " ";
            }
        }      

public IEnumerable<Control> GetAll(Control control, Type type)
    {
        var controls = control.Controls.Cast<Control>();

        return controls.SelectMany(ctrl=>GetAll(ctrl,type)).Concat(controls).Where
               (c=>c.GetType() ==type);
    }

在点击事件中调用此函数,以清除所有文本框。希望这对你有所帮助。

答案 3 :(得分:1)

评论弗雷德里克 - 你需要使用ActiveForm yourform.ActiveForm.Controls. ...

因为yourform.Controls. ...丢失错误:

An object reference is required for the non-static field, method, or property 'System.Windows.Forms.Control.Controls.get

申请VS2012Express