常用属性:Name、Text、Checked、AutoCheck、CheckAlign

常用事件:click 不管选择状态是什么,都会引发事件

CheckedChanged 选择改变时引发事件,一般使用CheckedChanged比较多

知识点1:

一般一组RadioButton中只能选择一个为选中状态,当其中一个选中后其他Radio Button自动切换为未选中状态。

一组RadioButton中,只要设置一个RadioButton的AutoCheck=false,则一组RadioButton可以有多个选中。

知识点2:

如何将多个RadioButton分组?

将不同功能的RadioButton放到不同的容器控件中即可以实现RadioButton分组。

比如上面的例子中,将男、女RadioButton放到一个Panel中,将正常、冻结RadioButton放到另一个Panel中,就实现了分组,两组RadioButton之间的操作互不干扰。

知识点3:

通过按钮获得选择结果,如下:

方法:

这种情况,一般每组RadioButton中初始化时都有一个处于选中状态。

//提交信息

private void btnSubmit_Click(object sender, EventArgs e)

{

string str1 = rbtnMan.Checked?rbtnMan.Text:rbtnFemal.Text;

string str2 = rbtnNomal.Checked?rbtnNomal.Text:rbtnFemal.Text;

MessageBox.Show(str1 + ":" + str2);

}

知识点4:

通过选择RadioButton获得不同的操作结果,如下:

方法:

这种情况,每个RadioButton初始化时都处于未选中状态。

//每个RadioButton都绑定一个CheckedChanged

private void rbtn1_CheckedChanged(object sender, EventArgs e)

{

if (rbtn1.Checked)

{

MessageBox.Show("system1");

}

}

private void rbtn2_CheckedChanged(object sender, EventArgs e)

{

if (rbtn2.Checked)

{

MessageBox.Show("system1");

}

}

private void rbtn3_CheckedChanged(object sender, EventArgs e)

{

if (rbtn3.Checked)

{

MessageBox.Show("system1");

}

}

需要注意的是在AutoCheck=true的情况下,当由“系统1”切换到“系统2”时,会触发两次CheckChanged事件,首先是“系统1”触发CheckChanged事件,然后是“系统2”触发CheckChanged事件。

修改如下代码:

private void radioButton1_CheckedChanged_1(object sender, EventArgs e)

{

MessageBox.Show("radioButton1_CheckedChanged_1");

}

private void radioButton2_CheckedChanged_1(object sender, EventArgs e)

{

MessageBox.Show("radioButton2_CheckedChanged_1");

}

private void radioButton3_CheckedChanged_1(object sender, EventArgs e)

{

MessageBox.Show("radioButton3_CheckedChanged_1");

}

当由“系统1”切换到“系统2”时,先弹出对话框显示“radioButton1_CheckedChanged_1”,关闭后再弹出对话框“radioButton2_CheckedChanged_1”。