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”。


 

posted on 2022-10-09 15:27  hanzq_go  阅读(1911)  评论(0编辑  收藏  举报

导航