c# 在groupbox控件中判断的内嵌的radiobutton是否已选

2024-11-29 10:48:03
推荐回答(4个)
回答1:

有两情情况,选择时判断和选择完成后判断

选择时判断时,把所有rediobutton的CheckedChanged事件指到一个事件,事件中处理判断是哪个radiobutton已选。

选择完成后判断时,遍历groupbox控件子控件,如果控件为rediobutton,检查其Checked属性,如果为true则是已选。

代码如下:

private void radioButton_CheckedChanged(object sender, EventArgs e)
{
    if (sender is RadioButton)
    {
        RadioButton rdoCtl = sender as RadioButton;
        if (rdoCtl.Checked)
        {
            MessageBox.Show(rdoCtl.Text + "被选择!");
        }
    }
}

private void button1_Click(object sender, EventArgs e)
{
    foreach (Control item in groupBox1.Controls)
    {
        if (item is RadioButton)
        {
            RadioButton rdoCtl = item as RadioButton;
            if (rdoCtl.Checked)
            {
                MessageBox.Show(rdoCtl.Text + "被选择!");
                break;
            }
        }
    }
}

效果如下:

回答2:

只有四个radiobutton可以用if(rbtn1.checked==false&&rbtn2.checked==false……)进行判断
如果radiobutton个数多的话:
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
foreach (RadioButton item in groupBox1.Controls)
{
if (item.Checked)
i++;
}
if (i == 0)
MessageBox.Show("没有选中任意个radiobutton");
}
好久没做winform了……

回答3:

radioButton有个IsChecked的属性,你可以对radiobutton做判断就行,类似
if (radiobutton.ischecked == true)
break;
else if(radiobutton2.ischecked == true)
break;
你在之前定义一个flag来记录就行,如果四个button都没有被选中,flag=0;否则,flag=1.
希望能帮到楼主

回答4:

this.radioButton1.CheckedChanged 注册此事件即可

this.radioButton1.Checked == true 就是说这个btn被选中了