程序运行时会自动检查一个收音机盒 - 但不应该这样

时间:2011-06-25 16:40:54

标签: c# visual-studio

我正在使用Visual Studio 2010在C#中编写应用程序。但突然间,最奇怪的事情开始发生了。

我在窗口顶部有两个收音机盒,两者都设置为Checked = False。我在代码中到处搜索,我认为没有理由为什么它只是False

现在,这两个框中的第一个(分别称为Radio1Radio2)已在应用程序执行时自动检查。这会导致问题,因为存在与正在检查的框相关联的事件,现在每次打开程序时都会运行此事件(导致一些严重问题)。

有没有人知道为什么会自动检查这个盒子?正如我所提到的,我已经查看了代码,以防我在某处悬挂Radio1.Checked = true;。但事实并非如此。

3 个答案:

答案 0 :(得分:8)

RadioButton类包含的代码可确保当其中一个按钮获得焦点并且AutoCheck属性设置为True时,将检查组中的至少一个按钮。这实现了单选按钮的标准行为。如果您需要非标准行为,则必须将其AutoCheck属性设置为false并自行执行检查。

答案 1 :(得分:0)

使用计数器机制,以便您可以在第一次时覆盖单击方法。像这样

form_load
  {
    counter=0;
   }
private void rb1_Click(object sender, EventArgs e)
    {
        if (counter == 0)   { counter++;}
        else {
               //Do your stuff
              }
    }
    private void rb2_Click(object sender, EventArgs e)
    {
        if (counter == 0)   { counter++;}
        else {
               //Do your stuff
              }
    }

希望这有用。

答案 2 :(得分:-2)

除非您在设计器中或通过代码设置属性,否则没有理由发生这种情况。奇怪。