我收到此错误:无法将类型为“ System.Web.UI.LiteralControl”的对象转换为类型为“ System.Web.Controls.TextBox
foreach(Control x in this.Controls)
{
Button btn = (Button)x;
btn.Enabled = true;
}
答案 0 :(得分:1)
您的某些控件不是按钮。如果您尝试将它们强制转换为按钮,则会出现此错误。
您可以使用LINQ和OfType()方法从列表中删除非按钮。使用OfType()
也会自动转换结果,因此您不需要中间变量。
//using System.Linq;
foreach(Button btn in this.Controls.OfType<Button>())
{
btn.Enabled = true;
}
如果要使用老式方法,请按以下步骤操作:
foreach(Control x in this.Controls)
{
Button btn = x as Button;
if (btn != null)
{
btn.Enabled = true;
}
}