我正在使用Visual Studio 2010在C#中编写应用程序。但突然间,最奇怪的事情开始发生了。
我在窗口顶部有两个收音机盒,两者都设置为Checked = False
。我在代码中到处搜索,我认为没有理由为什么它只是False
。
现在,这两个框中的第一个(分别称为Radio1
和Radio2
)已在应用程序执行时自动检查。这会导致问题,因为存在与正在检查的框相关联的事件,现在每次打开程序时都会运行此事件(导致一些严重问题)。
有没有人知道为什么会自动检查这个盒子?正如我所提到的,我已经查看了代码,以防我在某处悬挂Radio1.Checked = true;
。但事实并非如此。
答案 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)
除非您在设计器中或通过代码设置属性,否则没有理由发生这种情况。奇怪。