我的形式有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; }