加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

winforms – 如何检查单选按钮是否以Windows窗体形式检查

发布时间:2020-12-14 05:43:03 所属栏目:Windows 来源:网络整理
导读:我的形式有3对radiobutton我想检查每组radiobutton当用户按下保存按钮时检查一个radiobutton.我使用下面的代码检查每个radiobutton,但我认为这是一个更好的检查方法. if (radioBttnAddrssCoYes.Checked || rdoBttnAddCorrectNo.Checked){ if (rdoGroundFloor
我的形式有3对radiobutton我想检查每组radiobutton当用户按下保存按钮时检查一个radiobutton.我使用下面的代码检查每个radiobutton,但我认为这是一个更好的检查方法.

if (radioBttnAddrssCoYes.Checked || rdoBttnAddCorrectNo.Checked)
{
    if (rdoGroundFloorTrue.Checked || radioGroundFFalse.Checked)
    {
        if (rdoHomeTrue.Checked || radioMeet.Checked)
        {
            // Here I do something
        }
        else
        {
            MessageBox.Show("Please check Customer All day At Home");
        }
    }
    else
    {
        MessageBox.Show("Please Check Ground Floor Delivery");
    }
}
else
{
    MessageBox.Show("Check Addresss Correct"); 
}

谢谢你的支持和帮助

解决方法

我可能会做的有点不同,但这并不意味着你的方式是错的.

if(VaildateRadioGroupIsChecked(radioBttnAddrssCoYes,rdoBttnAddCorrectNo,"Check Addresss Correct") && 
   VaildateRadioGroupIsChecked(rdoGroundFloorTrue,radioGroundFFalse,"Please Check Ground Floor Delivery") && 
   VaildateRadioGroupIsChecked(rdoHomeTrue,radioMeet,"Please check Customer All day At Home")) 
{
    // do your thing...
}

private bool VaildateRadioGroupIsChecked(RadioButton a,RadioButton b,string MessageToUser) 
{
    if(!a.Checked && !b.Checked) {
        Messagebox.Show(MessageToUser);
        return false;
    }
return true;
}

当然,您可以进一步开发它,而不是将2个单选按钮发送到该函数,但它包含元素.这样,如果你有3个,4个或n个单选按钮,你可以通过一个简单的调用来检查所有这些按钮.

验证单选框被检查的另一种众所周知的技术是简单地在表单级别上保持一个布尔变量,默认情况下为false,并在检查任何单选按钮时更改为true.但是,在这种情况下,这种技术不能很好地为您服务,因为您需要3个布尔变量,并且与其他解决方案相比,代码将是不必要的复杂.

要在评论中回答你的问题,我可能会这样做:

string MessageToUser = VaildateRadioGroupIsChecked(radioBttnAddrssCoYes,"Check Addresss Correct") + 
                       VaildateRadioGroupIsChecked(rdoGroundFloorTrue,"Please Check Ground Floor Delivery") +  
                       VaildateRadioGroupIsChecked(rdoHomeTrue,"Please check Customer All day At Home");

if(MessageToUser.Length == 0) {
    // do your stuff
} else {
    Messagebox.Show(MessageToUser);
}

private string VaildateRadioGroupIsChecked(RadioButton a,string MessageToUser) 
{
    if(!a.Checked && !b.Checked) {
        return MessageToUser + "n";
    }
return string.Empty;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读