我有几个用于输入的文本框,然后还有几个用于结果的文本框。 是否有任何快捷方式可以清除表单上的所有条目?
例如aTextBox.Clear();
答案 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