c#快速清除所有⽂本框中内容
c#快速清除所有⽂本框中内容
如何清除Form中所有的⽂本框内容?分两种情况:(1)当所有的⽂本框都是顶级控件,即它们都直接位于this.Controls(或groupBox.Controls)中,此时遍历⼀遍清除即可。(2)当⽂本框不全处于顶级,即部分包含在某些容器控件内,如groupBox中,由于控件在窗体中是严格分级摆放的。此时的⽂本框有的位于this.Controls中(即Form控件集中),有的则位于groupBox.Controls中。
对于(1),直接这样写就可:
//或为groupBox1.Controls/panel1.Controls
foreach (Control ctrl in Controls)
{
if (ctrl is TextBox)
ctrl.Text = "";
}
写出这样⼏⾏简单的代码是为了强调⼀个地⽅,当某些⽂本框是⽤户⾃⼰定义的⼀个继承TextBox的控件时,像上⾯那样写,都可识别,但若写成:if (ctrl.GetType() == typeof(TextBox)),这种判断⽅式相对严格,⾃定义⽂本框不会被识别。
为了解决(2)中提出的问题,可写⼀个更为灵活通⽤的⽅法来检测出这些⽂本框,并将之清空。⽅法如下:
private void ClearText(Control ctrlTop)
{
if (ctrlTop.GetType() == typeof(TextBox))
ctrlTop.Text = "";
else
{
html内容文本框foreach (Control ctrl in ctrlTop.Controls)
{
ClearText(ctrl); //循环调⽤
}
}
}
在需要的地⽅,直接调⽤ClearText(this)就⼤功告成了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论