C# 当程序运行时,会自动选中广播框,但它不应';不可能
我正在使用Visual Studio 2010用C#编写一个应用程序。然而,突然间,最奇怪的事情开始发生了 我在窗口顶部有两个收音机框,都设置为C# 当程序运行时,会自动选中广播框,但它不应';不可能,c#,visual-studio,C#,Visual Studio,我正在使用Visual Studio 2010用C#编写一个应用程序。然而,突然间,最奇怪的事情开始发生了 我在窗口顶部有两个收音机框,都设置为Checked=False。我已经在代码中搜索了所有地方,我看不出有什么原因会是错误的 现在,在执行应用程序时,这两个框中的第一个(分别称为Radio1和Radio2)已开始自动检查。这会导致问题,因为有一个事件与正在选中的框关联,现在每次打开程序时都会运行该事件(导致一些严重问题) 有人知道为什么这个框会被自动选中吗?正如我提到的,我在代码中查找了所有
Checked=False
。我已经在代码中搜索了所有地方,我看不出有什么原因会是错误的
现在,在执行应用程序时,这两个框中的第一个(分别称为Radio1
和Radio2
)已开始自动检查。这会导致问题,因为有一个事件与正在选中的框关联,现在每次打开程序时都会运行该事件(导致一些严重问题)
有人知道为什么这个框会被自动选中吗?正如我提到的,我在代码中查找了所有地方,以防出现
Radio1.Checked=true代码>悬挂在某处。但事实并非如此。除非在设计器中或通过代码设置属性,否则不应该发生这种情况。奇怪。RadioButton类包含代码,确保在其中一个按钮获得焦点且AutoCheck属性设置为True时,组中至少有一个按钮被选中。这实现了单选按钮的标准行为。如果您想要非标准行为,则必须将其自动检查属性设置为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
}
}
希望这是有帮助的。一组中的一个单选按钮可以随时检查,这是标准的。您希望单选按钮以非标准方式运行有什么原因吗?如果您的技术原因是唯一的理由,那么在连接事件处理程序之前设置Checked属性。我通过在构造函数中设置每个RadioButton.Checked=false来解决此问题。谢谢,我也将对此进行研究。我发现将TabStop设置为false似乎也能解决这个问题。这只会让用户很难将焦点移动到按钮上。