2010-01-08 487 views
1

我有一个WinForms应用程序(VS 2008,.NET 3.5),它有两个不同的组框,每个组框中有不同的单选按钮组。当我运行该应用程序时,第一个组框自动具有已选中的第一个单选按钮,而第二个组框没有默认选中的单选按钮。在一个组框中选择VB.NET默认单选按钮

我已经查看了单选按钮和组框的所有属性,但无法弄清楚两者之间的区别。我希望两个分组框在第一次打开表单时都可以取消选中所有单选按钮。

另外,我查看了表单的Designer.vb文件,并找不到任何不寻常的内容。

+0

在设计器中,它们都显示为未选中状态,并检查每个属性(但特别是第一个组框中的第一个属性),它们显示为Checked false。 – 2010-01-08 22:02:10

+0

通过说复选框是“选中”,你的意思是“检查”?对不起,如果这没什么帮助,但是如果你在设计器中打开你的表单,并且你查看所有复选框的“Checked”属性,它们是否都设置为False? – stakx 2010-01-08 21:54:02

回答

5

我也有过这个问题。我只是手动将所有RadioButton对象设置为Form_Shown事件中的.Checked = False。请注意, Form_Load事件后它必须是,否则它将不起作用,并且RadioButton将设置为默认值。

为什么?我不知道。也许是VB.NET中的一个错误。

0

您需要为这两个广播组分配不同的名称。这可能不是你的问题,但这是一个可能的原因。

我很好奇你为什么要让收音机默认没有任何价值。收音机表示布尔值 - 真或假 - 没有其他有效的状态。

+0

我挂钩了单选按钮的CheckedChanged事件,它根据用户选择的内容触发附加事件。由于第一个单选按钮是人为地被选中的,所以这些事情中有一些是在他们应该做的之前发生的。 – 2010-01-08 22:05:25

5

将所有按钮的AutoCheck属性设置为False。您现在必须为它们编写一个Click处理程序来设置它们的Checked属性。一个样品处理程序,照顾其中两个:

Private Sub RadioButton_Click(ByVal sender As Object, ByVal e As EventArgs) _ 
     Handles RadioButton1.Click, RadioButton2.Click 
    Dim button As RadioButton = DirectCast(sender, RadioButton) 
    RadioButton1.Checked = button is RadioButton1 
    RadioButton2.Checked = button Is RadioButton2 
    End Sub 
2

如果您的最低制表索引是一个单选按钮,并且您将AutoCheck设置为True,那么当表单加载并将活动元素设置为最低Tab键索引时,它的行为就好像您单击了单选按钮,跳闸自动检查并因此检查单选按钮。只需在Tab索引为0的表单上另一个控件即可。

0

RadioButton1.checked = False Under Form_Activated works。

0

我有这个问题,并使Autocheck = false,伎俩。 和YES的RadioButton1是TAB = 0

三江源

0

设置自动检查所有的单选按钮,这两个群体“假”。将它们全部设回“真”。 这对我有用。 我也不得不将第一个按钮勾选(选中)后,第二个按钮才会打好。