在浏览checkBox时,我发现上面写着
CheckBox checkbox = (CheckBox)sender在checkBox1_CheckedChanged事件上。
请解释一下这是什么意思?
发布于 2010-09-23 19:23:41
这行代码只是将sender转换为CheckBox。
为什么?
CheckedChanged事件的事件处理程序签名为:
CheckChanged(object sender, EventArgs e)因此,如果您想使用任何特定于CheckBox的功能,则需要将sender转换回CheckBox - object没有太多可供您使用的功能。
这样,checkbox变量就可以用来获取复选框Id并对该复选框进行操作。
发布于 2010-09-23 19:49:11
这是一个在网格视图或转发器中的example.Suppose,我们希望选择你在邮件中看到的所有option.As box.There一个复选框,如果你点击它,select.Code会更好地解释你。
protected void ChkAll_CheckedChanged(object sender, EventArgs e)
{
foreach (RepeaterItem rowItem in this.rptFriendsRecord.Items)
{
CheckBox chk = (CheckBox)rowItem.FindControl("cbFriend");
chk.Checked = ((CheckBox)sender).Checked;
}
}我希望它能起作用。
发布于 2010-09-23 19:24:43
我假设方法定义是这样的:
void checkBox1_CheckedChanged(object sender,EventArgs e){
CheckBox checkbox = (CheckBox)sender;
//....
}基本上,他们在这里所做的就是将声明为泛型对象的sender变量转换为(更“有用”的) CheckBox变量。
这通常是因为您必须进行强制转换才能访问CheckBox的“特定”属性。
例如
sender.Checked=true;不会起作用。你必须这样做:
((CheckBox)sender).Checked=true;这当然非常难看,所以声明一个新的CheckBox变量要容易得多,然后您可以简单地这样做
checkbox.Checked=true;没有选角。
https://stackoverflow.com/questions/3777766
复制相似问题