Thank you all! Finally a solution. :-D I will post the code here for future people with the same problem. Like jasper suggest before, i did set the AutoCheck property to false on all radiobuttons (4 in my case) and add just 1 event on all of them (the Click event). It works when the user click the radiobutton or even when using the keyboard. Perfectly as it seems to me, and not so hard coded anyway. private void radioButton_tipo_Click(object sender, EventArgs e) { if (((RadioButton)sender).Checked == true) { return; } else if (MessageBox.Show("Are you sure?", "Attention", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { ((RadioButton)sender).Checked = true; if (sender.Equals(radioButton_tipo_SA)) { radioButton_tipo_SQ.Checked = false; radioButton_tipo_ACE.Checked = false; radioButton_tipo_SQU.Checked = false; } else if (((RadioButton)sender) == radioButton_tipo_SQ) { radioButton_tipo_SA.Checked = false; radioButton_tipo_ACE.Checked = false; radioButton_tipo_SQU.Checked = false; } else if (((RadioButton)sender) == radioButton_tipo_ACE) { radioButton_tipo_SQ.Checked = false; radioButton_tipo_SA.Checked = false; radioButton_tipo_SQU.Checked = false; } else { radioButton_tipo_SQ.Checked = false; radioButton_tipo_ACE.Checked = false; radioButton_tipo_SA.Checked = false; } } } Thanks everybody for the help !!!