RadioButton控件
常用属性: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”。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?