程序运行时会自动选中一个单选框,但它应该';不要
本文关键字:单选框 不要 一个 运行时 程序 | 更新日期: 2023-09-27 18:00:35
我正在使用Visual Studio 2010用C#编写一个应用程序。然而,突然之间,最奇怪的事情开始发生了。
我在窗口顶部有两个无线电盒子,都设置为Checked = False
。我已经在代码中搜索了所有地方,我看不出为什么它会是False
。
现在,当应用程序执行时,这两个框中的第一个(分别称为Radio1
和Radio2
)已经开始自动检查。这会导致一个问题,因为有一个事件与选中的框相关联,现在每次打开程序时都会运行此事件(导致一些严重问题)。
有人知道为什么这个框会自动被选中吗?正如我所提到的,我在代码中到处查找,以防有Radio1.Checked = true;
挂在某处。但事实并非如此。
RadioButton类包含代码,以确保当其中一个按钮获得焦点并且AutoCheck属性设置为True时,至少检查组中的一个按钮。这实现了单选按钮的标准行为。如果你想要非标准行为,那么你必须将它们的AutoCheck属性设置为false,并自己实现检查。
使用计数器机制,以便您可以第一次覆盖click方法。像这个
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
}
}
希望这是有益的。
除非您在设计器中或通过代码设置属性,否则不应该发生这种情况。奇怪的