首页 新闻 会员 周边

C# 在代码总调用 控件的CheckedChanged 事件,怎么调用

0
[待解决问题]

在C#代码中 , 设置 radio的check 属性的值时,需要触发 radio的onCheckedChanged事件。

比如:页面中有个radio的iD为rbBasicBHIOnYes ;

现在在 C#代码中(不是html页面 和 aspx页面, 是aspx.cs页面),重设rbBasicBHIOnYes check的值:

rbBasicBHIOnYes.Checked = true;

紧接着 触发 rbBasicBHIOnYes_CheckedChanged() 方法(就是建立好的rbBasicBHIOnYes事件)

有哪位大神知道怎么做? 谢谢

 

jason_LSZ的主页 jason_LSZ | 菜鸟二级 | 园豆:205
提问于:2017-01-11 19:14
< >
分享
所有回答(3)
0

checkedchanged事件是rbBasicBHIOnYes.Checked值改变后自动触发的

龙葛格 | 园豆:782 (小虾三级) | 2017-01-11 19:16

不是,只设置 rbBasicBHIOnYes.Checked = true; 并不能触发 checkedchanged事件, 我有打断点进去看, 没有调用checkedchanged事件的函数

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-11 19:18

这是在C# 代码里面设置, 不是在前台页面中选择,

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-11 19:43
0

rbBasicBHIOnYes.Checked+=事件 这样应该可以的

liyanzhao | 园豆:42 (初学一级) | 2017-01-11 23:04

我有这样试过, 

 rbBasicBHIOnYes.Checked = true;
rbBasicBHIOnYes.CheckedChanged += new EventHandler(this.rbBasicBHIOnYes_CheckedChanged) 

或者 rbBasicBHIOnYes.CheckedChanged += rbBasicBHIOnYes_CheckedChanged;

但是 我打断点 进去看, 都不没进入进入 rbBasicBHIOnYes_CheckedChanged()函数中,

有没有 不同的用法? 

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-12 13:02

@jason_LSZ: rbBasicBHIOnYes.CheckedChanged += new EventHandler(this.rbBasicBHIOnYes_CheckedChanged) 之后只会添加了 并没有调用 你再调用一下 

 rbBasicBHIOnYes_CheckedChanged(null,null)

支持(0) 反对(0) liyanzhao | 园豆:42 (初学一级) | 2017-01-13 11:36

@liyanzhao: 

rbBasicBHIOnYes.Checked = true;
rbBasicBHIOnYes.CheckedChanged += new EventHandler(this.rbBasicBHIOnYes_CheckedChanged);
rbBasicBHIOnYes.CheckedChanged(null, null);

我这样使用了下: 出现问题

错误 225 事件“System.Web.UI.WebControls.CheckBox.CheckedChanged”只能出现在 += 或 -= 的左边 

 

这个 CheckedChanged 不能直接调用, 只能出现在 += 或 -= 的左边 

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-13 12:09
0

在页面初始化时挂接事件委托

rbBasicBHIOnYes.OncheckedChanged+=(s,e)=>{rbBasicBHIOnYes_CheckedChanged();};

Daniel Cai | 园豆:10424 (专家六级) | 2017-01-12 09:10

这个事件委托怎么用的? 我不是太了解,能详细说下吗

我有试了一下,

出现错误: 

错误 225 不能在此范围内声明名为“e”的局部变量,因为这样会使“e”具有不同的含义,而它已在“父级或当前”范围中表示其他内容了 

初始位置 , 是指什么位置? 多谢

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-12 13:05

@jason_LSZ: 那就换个名字咯

(s,ez)=>

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2017-01-12 13:41

@Daniel Cai:  我这样使用,

rbBasicBHIOnYes.Checked = true;

rbBasicBHIOnYes.CheckedChanged += (s, es) => { rbBasicBHIOnYes_CheckedChanged(s,es); };

设置断点, 还是不能 进入 rbBasicBHIOnYes_CheckedChanged()函数, 说明这样还是没有触发这个事件,

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-12 13:47

@Daniel Cai:  你以前有这样使用过吗? 能不能来个具体例子

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-12 13:48

@jason_LSZ: 没触发因为你这样挂接晚了,传统的webform中到你这些代码初始化早都结束了。下次页面再post还是重头再来。

挂接事件要在这些event被触发前,如果没记错的话应该是在page load及之前做这些事。

比较奇怪的是,为什么你要这样做?asp.net webform中我记得双击下控件就可以直接愉快的在cs中写对应的事件代码了啊(事件挂接应该是在页面初始化时候就完成了)。

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2017-01-12 14:03

@Daniel Cai: 那是因为, 我在代码中 改变checkbox的值时, 需要 像在页面中点击checkbox时, 使用rbBasicBHIOnYes_CheckedChanged()中代码

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-12 14:47

这就尴尬了,我想 设置 checkbox 的check值 , 触发rbBasicBHIOnYes_CheckedChanged(), 大神还有没有其他方法?

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-12 14:49

@jason_LSZ: 那你咋不在默认的changed事件对应的委托方法中加个判断呢?这不就结了么?

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2017-01-12 15:24

@Daniel Cai:实在搞不明白你说的,  求大神帮忙写个简单例子, 多谢

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-12 17:45

@jason_LSZ: 

我对你的问题的理解是当checkbox被点击后会走向不同的分支代码,如果是这样

那么这样实现不就完了么?

void Page_Load(object sender,EventArgs e)

{

  xxxCheckBoxInstance.OnCheckedChanged+=(s,ev)={

    if(xxxCheckBoxInstance.Checked)

    {

      //...dosth you like;

    }

    else

    {

      //...other logic here;

    }

  };

}

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2017-01-12 18:17

@Daniel Cai:  不好意思,你可能没理解我的意思, 我是要在 设置xxxCheckBoxInstance.Checked=true,然后调用xxxCheckBoxInstance的 CheckedChanged()事件函数,  不是说 我再写一部分代码, 只是要调用 已经存的 它的CheckedChanged()函数

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-13 11:44

@jason_LSZ: 你写段伪代码大概描述下你的场景吧。包括如何触发设定checked为true的。

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2017-01-13 11:55

@Daniel Cai: 

其实很简单,  我需要在代码中 手动设置 rbBasicBHIOnYes.Checked = true;

在设置 rbBasicBHIOnYes.Checked = true; 之后 调用 rbBasicBHIOnYes.CheckedChanged()函数

比如:

rbBasicBHIOnYes.Checked = true;

触发rbBasicBHIOnYes的CheckedChanged事件 或 说成 调用 rbBasicBHIOnYes的 CheckedChanged()函数

支持(0) 反对(0) jason_LSZ | 园豆:205 (菜鸟二级) | 2017-01-13 12:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册