Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I prevent a RadioButton from being checked when the Form loads?

I can't seem to prevent my form from checking one of the Radio Buttons in my Group Box:

enter image description here

As shown in the designer, no Radio Buttons are checked there.

Below is just about all of the code for this simple form. Nothing calls for a Radio Buttons to be checked here or in the form's designer.

Q: Is there a way to prevent any Radio Button from being checked when the form loads?

public ValueTypeSelector() {   InitializeComponent();   radioButton1.Checked = false;   radioButton2.Checked = false;   radioButton3.Checked = false;   radioButton4.Checked = false;   radioButton5.Checked = false;   radioButton6.Checked = false;   button1.Enabled = false;   button1.Click += clickEvent;   button2.Click += clickEvent;   radioButton1.Click += clickEvent;   radioButton2.Click += clickEvent;   radioButton3.Click += clickEvent;   radioButton4.Click += clickEvent;   radioButton5.Click += clickEvent;   radioButton6.Click += clickEvent; }  void OnShow(object sender, EventArgs e) {   foreach (RadioButton rad in Controls) {     if (rad.Checked) {       Console.WriteLine("WTF?");     }   } }  void clickEvent(object sender, EventArgs e) {   RadioButton rad = sender as RadioButton;   if (rad != null) {     if (rad.Checked) {       if (rad == radioButton1) {         DataType = TableDataType.Boolean; // <= HERE IS THE PROBLEM! FIRES ON FORM LOAD       } else if (rad == radioButton2) {         DataType = TableDataType.Character;       } else if (rad == radioButton3) {         DataType = TableDataType.DateTime;       } else if (rad == radioButton4) {         DataType = TableDataType.Decimal;       } else if (rad == radioButton5) {         DataType = TableDataType.Integer;       } else if (rad == radioButton6) {         DataType = TableDataType.String;       } else {         return;       }       button1.Enabled = true;     }   } else if (sender == button1) {     DialogResult = DialogResult.OK;     Close();   } else if (sender == button2) {     DialogResult = DialogResult.Cancel;     Close();   } } 

UPDATE: The problem is that radioButton1 gets checked when the form is shown:

      if (rad == radioButton1) {         DataType = TableDataType.Boolean; // <= HERE IS THE PROBLEM! FIRES ON FORM LOAD       } else if (rad == radioButton2) { 
like image 722
jp2code Avatar asked Jul 19 '11 17:07

jp2code


People also ask

How do I make radio buttons not checked by default?

You can check a radio button by default by adding the checked HTML attribute to the <input> element. You can disable a radio button by adding the disabled HTML attribute to both the <label> and the <input> .

What is the use of RadioButton control?

A radio button or option button is a graphical control element that allows the user to choose only one of a predefined set of mutually exclusive options. The singular property of a radio button makes it distinct from checkboxes, where the user can select and unselect any number of items.

Which event of RadioButton occurs when the value of the Checked property changes?

The check box portion of a RadioButton is moved to the right or left of the text when the Checked value changes.


1 Answers

Make sure your radiobuttons are NOT the first tabindex = 0 controls. Make the OK button tabindex=0, followed by the radiobuttons.

like image 181
LarsTech Avatar answered Nov 04 '22 22:11

LarsTech