记一次使用winform写窗体程序时候发现的事件触发。偶然发现使用radioButton注册一个click事件,结果每次打开该窗体都会触发事件,替换成其他控件又不会有这种情况,经过观察发现radioButton的tabIndex值如果设置为0(可能是窗体里的最小值)时,新进入该窗体就会触发其事件,应该是因为radioButton默认要被赋值为真(一个GroupBox中有多个控件)。
增加三种控件的事件用于加断点进行观察
private void button1_Click(object sender, EventArgs e)
{
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
}
private void radioButton1_Click(object sender, EventArgs e)
{
}
radioButton1的TabIndex设置为0,进入该窗体时触发事件,CheckedChange和Click都会被触发。
将radioButton的TabIndex该为其他值,将Button或者checkBox的索引改成0,再进入该窗体就不会触发radioButton的事件,radioButton也默认不会 有真值。