radioButton类的CheckedChanged事件
c#winform,在form里面创建了4个radioButton。分别是radioButton1、radioButton2、radioButton3、radioButt...
c# winform,在form里面创建了4个radioButton。分别是radioButton1、radioButton2、radioButton3、radioButton4。在分别写CheckedChanged事件的处理方法的时候发现radioButton2的CheckedChanged事件会调用radioButton1的CheckedChanged事件处理方法和radioButton2的CheckedChanged事件处理方法。也就说他调用了两次处理方法。必须得用if (radioButton2.Checked)判断才能解决这个问题。我想问问大家为什么他会触发两次而不是一次或者是更多次事件。
代码如下:
private void button1_Click(object sender, EventArgs e)
{
string display ="一共选择了" +flag + "次";
MessageBox.Show(display);
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
flag++;
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
flag++;
}
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
flag++;
}
private void radioButton4_CheckedChanged(object sender, EventArgs e)
{
flag++;
}
这段是错误的,当我依次选择了radioButton1和radioButton2时flag的值却为3。
我是用vs2005的c#.net,一个groupbox在所有的radiobutton下,我试了好几次都不行。值都不对。。 展开
代码如下:
private void button1_Click(object sender, EventArgs e)
{
string display ="一共选择了" +flag + "次";
MessageBox.Show(display);
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
flag++;
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
flag++;
}
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
flag++;
}
private void radioButton4_CheckedChanged(object sender, EventArgs e)
{
flag++;
}
这段是错误的,当我依次选择了radioButton1和radioButton2时flag的值却为3。
我是用vs2005的c#.net,一个groupbox在所有的radiobutton下,我试了好几次都不行。值都不对。。 展开
4个回答
展开全部
这个问题的原因有很多种:
首先 是你用的事件 有关,CheckedChanged事件,是当这个控件的值改变的时候,就会触发,窗体刚加载的时候,控件初始化为选中的时候,那个事件就会激活. 当你在选择另一个控件的时候,第一次选择的那个控件有选中变为未选中,而选中的控件有未选中变为选中,所以他们都触发了自己的CheckedChanged事件.
首先 是你用的事件 有关,CheckedChanged事件,是当这个控件的值改变的时候,就会触发,窗体刚加载的时候,控件初始化为选中的时候,那个事件就会激活. 当你在选择另一个控件的时候,第一次选择的那个控件有选中变为未选中,而选中的控件有未选中变为选中,所以他们都触发了自己的CheckedChanged事件.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我试了下,在我这里是好着呢。结果是2,不是3.
估计是你在radioButton1选中后,你再选择radioButton2时,radioButton1被自动“归位”,因此又执行了一次CheckedChanged。
估计是你在radioButton1选中后,你再选择radioButton2时,radioButton1被自动“归位”,因此又执行了一次CheckedChanged。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你把所有radioButton设为同一组的话 就是只能单选的话 那结果就是3,因为radioButton1执行了两次radioButton2执行了1次
如果radioButton不是同一组的话 那结果就是2没错
如果radioButton不是同一组的话 那结果就是2没错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询