【发布时间】:2011-01-26 23:13:41
【问题描述】:
private void CleanForm()
{
foreach (var c in this.Controls)
{
if (c is TextBox)
{
((TextBox)c).Text = String.Empty;
}
}
}
上面的这个方法不起作用,控件没有被清除。它编译得很好,但什么也不做。
有什么想法吗?
【问题讨论】:
-
顺便说一句,您可能希望指定
TextBoxBase而不是TextBox;这也会自动包含多行文本框、富文本框等。 -
另外,您不需要转换为
TextBox。 -
此代码按原样工作,但请确保在 for each 语句中,(this.Controls) 是具有文本框的实际控件,例如,如果您有一个带有tableLayoutPanel,文本框都在tableLayoutPanel中,foreach(var c in this.Controls)不行,必须foreach(var c in tableLayoutPanel1.Controls)。