以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- e.Form.Controls("RadioButton4").Select() 执行与预期不一样? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77133) |
||||
-- 作者:包头123 -- 发布时间:2015/11/11 16:35:00 -- e.Form.Controls("RadioButton4").Select() 执行与预期不一样? 版主: 我建立了6个RadioButton控件,如下: Panel1上:RadioButton1,RadioButton2,RadioButton3 Panel2上:RadioButton4,RadioButton5,RadioButton6 我的想法是:点击Panel1上的RadioButton1,或者RadioButton2,或者RadioButton3时,都模拟点击(或者默认触发)RadioButton5控件。 因此,在RadioButton1,RadioButton2,RadioButton3的Click事件中,写了如下语句: e.Form.Controls("RadioButton5").Select() 运行结果发现:RadioButton5的内容执行了3次,即在屏幕上闪动了3次。 但是我去掉RadioButton1,RadioButton2,RadioButton3的Click事件中的代码,手工点击RadioButton5控件时,只执行1次。 为什么自动执行e.Form.Controls("RadioButton5").Select()与人工点击RadioButton5控件的效果有差异呢?
|
||||
-- 作者:大红袍 -- 发布时间:2015/11/11 17:01:00 -- select() 触发的是Enter事件,不会触发click事件。
具体例子发上来。 |
||||
-- 作者:包头123 -- 发布时间:2015/11/11 17:46:00 -- 那我先试试看。 |
||||
-- 作者:包头123 -- 发布时间:2015/11/12 16:22:00 -- 版主: 我做了一个例子,如下: 点击RadioButton1自动选择RadioButton2,RadioButton2自动选择RadioButton3,在RadioButton3中,显示一行信息,总计显示了4次。 帮我看看,到底哪里有问题了?
|
||||
-- 作者:包头123 -- 发布时间:2015/11/12 16:22:00 -- 也就是说,实际执行结果,本来预想的显示1次,结果显示了4次,与预期不一样。 |
||||
-- 作者:大红袍 -- 发布时间:2015/11/12 16:47:00 -- click是中切换焦点肯定有这样的问题。
1、2、3;2、3;2、3;2、3;1 这样执行的。
用selece触发click肯定是不对的,要不你就用 CheckedChanged 代替 |
||||
-- 作者:包头123 -- 发布时间:2015/11/13 8:54:00 -- 版主: 你说的1、2、3;2、3;2、3;2、3;1 这样执行的。我有点不明白,能否再说明白一些。 用select触发click不对,但我放在click事件中,确实执行了,应该不执行才对。 |
||||
-- 作者:大红袍 -- 发布时间:2015/11/13 9:08:00 -- 不要再click事件切换焦点啊。会造成循环触发事件的。 |
||||
-- 作者:包头123 -- 发布时间:2015/11/13 9:16:00 -- 版主: 你说的不错,按照你的思路,确实解决了。 但刚才我提到的问题,我感觉也确实是问题。 谢谢了。
|
||||
-- 作者:大红袍 -- 发布时间:2015/11/13 9:26:00 -- 1、2、3表示控件,click事件过程中焦点离开,会先执行其余事件,最后再回到自己那里。
1、2、3;2、3;2、3;2、3;1 |