在表单上有4个radioButton,每个都有自己的click事件, 
第一个radioButton为checked ,可表单一运行就触发了它的click事件,想问一下是怎么回事? 
有回帖说:在loaded里注册click事件就不会了; 如何添加loaded事件,并注册radiobutton的click事件?

解决方案 »

  1.   

    参考写法this.btnActRecOK.Click += new EventHandler(btnActRecOK_Click);
    this.btnActRecOK.Click -= new EventHandler(btnActRecOK_Click);            
      

  2.   

    问题出现在你把你的RadioButton设置TabIndex为0,在Form Load的时候会设置焦点,这时RadioButton被设置为焦点,触发了RadioButton.Enter事件,然后RadioButton.OnEnter方法触发了RadioButton.Click事件。
    解决办法:
    对Form的TabOrder进行设置,第一个焦点不要设置到RadioButton上。
      

  3.   

    this.btnActRecOK.Click += new EventHandler(btnActRecOK_Click);
    把初始化里这句删掉,加载load最后(YY)
      

  4.   


    现在就是用这个方法,但在表单的load事件不能用focus();
    用tabindex属性,将表单上某个控件设为 0 后,而tabindex的顺序又不对了。
      

  5.   

    得到focus必然会触发Click,RadioButton的逻辑是这样的。
    如果你继承RadioButton重载OnEnter方法,会导致适用Tab键无法Check RadioButton。
    你需要权衡