BP.
BP.

Reputation: 10083

VB.NET default radio button selected inside a group box

I have a WinForms application (VS 2008, .NET 3.5) that has a form with two different group boxes, and inside of each group box are different sets of radio buttons. When I run the application, the first group box automatically has the first radio button in it already selected, and the second group box does not have a radio button selected by default.

I have looked through all the properties of the radio buttons and the group boxes, and cannot figure out what the difference is between the two. I would like both group boxes to have all radio buttons unselected when the form is first opened.

Also, I looked through the Designer.vb file for the form, and could not find anything unusual going on in there either.

Upvotes: 2

Views: 37483

Answers (8)

Just change the groupbox accessible role property from default to none It will work ☺️

Upvotes: 0

Wells
Wells

Reputation: 1

Set Auto Check to "False" on all the radio buttons, both groups. Set them all back to "True". This worked for me. I also had to group boxes the one was good the second one came with the first button checked (selected).

Upvotes: 0

WSR Michael
WSR Michael

Reputation: 3

i had this problem, and making Autocheck=false, did the trick. and YES the RadioButton1 was TAB=0

ThankYou

Upvotes: 0

rsolo__
rsolo__

Reputation: 29

RadioButton1.checked = False under Form_Activated works.

Upvotes: 0

Majavis
Majavis

Reputation: 21

If your lowest Tab Index is a Radio Button, and you have AutoCheck set to True, then when the form loads and sets the active element to the lowest Tab Index, it acts as if you had clicked on the Radio Button, tripping the AutoCheck and therefore checking the Radio Button. Simply give another control on the form the Tab Index of 0.

Upvotes: 2

HardCode
HardCode

Reputation: 6756

I've had this issue, too. I just manually set all RadioButton objects to .Checked = False in the Form_Shown event. Note that it has to be after the Form_Load event or it won't work, and the RadioButton will be set with a default.

Why? I don't know. Perhaps a bug in VB.NET.

Upvotes: 5

Hans Passant
Hans Passant

Reputation: 941705

Set all the buttons' AutoCheck property to False. You'll now have to write a Click handler for them to set their Checked property. A sample handler that takes care of two of them:

  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

Upvotes: 6

user164226
user164226

Reputation:

You need to give both radio groups different group names. That may not be your issue, but it's a possible reason.

I'm curious as to why you would want radios to default to having no value at all. Radios represent boolean values - True or False - there is no other valid state.

Upvotes: 0

Related Questions