如何使用foreach循环编辑文本框

Ram*_*hna 5 c#

foreach(textbox t in this.controls)
{
t.text=" ";
}
Run Code Online (Sandbox Code Playgroud)

我想一次清除页面中的所有文本框.

我收到一个错误:

无法将类型为"System.Web.UI.LiteralControl"的对象强制转换为"System.Web.UI.WebControls.TextBox".

Dan*_*haw 13

该错误是因为您的控件集合不仅包含文本框.试试这个.

foreach (Control c in this.Controls)
{
    TextBox t = c as TextBox;

    if (t != null)
    {
        t.text=" ";
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Isaac:如果你有LINQ,这可行,但如果没有... Daniels方法也适用于.Net 2.0 (2认同)

Joe*_*win 6

您正在浏览控件,并非所有控件都必须是文本框,因此无法编译foreach循环.

直接的方法是执行a foreach (Control c in this.Controls)然后检查控件是否是文本框.

您也可以在.NET的更高版本中尝试此操作:

foreach(TextBox t in this.Controls.OfType<TextBox>())
Run Code Online (Sandbox Code Playgroud)