C#--无法隐式转换类型';System.Web.UI.Control';至';System.Web.UI.WebControls.CheckBox'; int p=0; int q=0; p=0; q=0; 字符串username=null; 用户名=会话[“用户”]; int-total=0; 对于(total=1;total

C#--无法隐式转换类型';System.Web.UI.Control';至';System.Web.UI.WebControls.CheckBox'; int p=0; int q=0; p=0; q=0; 字符串username=null; 用户名=会话[“用户”]; int-total=0; 对于(total=1;total,c#,asp.net,webforms,C#,Asp.net,Webforms,这是因为您试图将父类(System.Web.UI.Control)设置为子类(System.Web.UI.WebControls.CheckBox): 使用关键字作为正确分配: ch = Page.FindControl("C" + total); 请注意,如果System.Web.UI.Control不是System.Web.UI.WebControls.CheckBox类型,则可能会得到null,声明“CheckBox ch=new CheckBox();”看起来很奇怪在for循环内部。请

这是因为您试图将父类(
System.Web.UI.Control
)设置为子类(
System.Web.UI.WebControls.CheckBox
):

使用关键字
作为
正确分配:

ch = Page.FindControl("C" + total);

请注意,如果
System.Web.UI.Control
不是
System.Web.UI.WebControls.CheckBox

类型,则可能会得到
null
,声明“CheckBox ch=new CheckBox();”看起来很奇怪在for循环内部。请尝试在for循环之前声明它。我可能错了…

我尝试了此操作,但现在发现一个类型或命名空间名称为“WebControl”的错误,无法找到(您是否缺少using指令或程序集引用?)即使我的文件顶部有“using System.Web.UI.WebControls;”。@user808317如果您已经有
使用System.Web.UI.WebControls
,那么您就不需要了。只需将
用作复选框
,也就是说,要更加小心
查找
,因为如果有其他名为st的
控件
使用
C
而不使用
复选框
你会得到
null
异常,如果你不过滤掉它/处理
null
ch
@user808317你在使用
WebForms
吗?现在没事了!:))非常感谢你的帮助HELP@user808317太好了……:)
ch = Page.FindControl("C" + total);
ch = Page.FindControl("C" + total) as CheckBox;