我刚开始学习C#,我想知道是否可以清除所有文本框的内容,例如在我的表单中。
我知道如何逐一清除,但这对我来说不切实际。
谢谢!
编辑:我发现我的回答非常感谢你
答案 0 :(得分:4)
如果你只想清除TextBox
es,你可以这样轻松地做到:
foreach(TextBox tb in this.Controls.OfType<TextBox>())
tb.Text = string.Empty;
但只会清除TextBox
上直接的所有Form
而不是GroupBox
内的Panel
或TextBox
或任何其他容器。
如果您在其他容器中有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 = "");