2012-04-16 56 views
0

我只是试图检查三个无线电盒中的一个已被检查,因为某些原因,即使在调试控制台中的所有盒子'.Selected = false'仍然跳过我的错误消息。任何帮助表示赞赏。验证无线电盒

if ((rdoIndoor.Checked = false) && (rdoOut.Checked = false) && (rdoSwimming.Checked = false)) 
     { 
      MessageBox.Show("Please select an event style"); 

     } 
+1

我觉得简单的语法错误。将'='替换为'==' – 2012-04-16 20:40:13

+3

您使用赋值运算符是一回事,但您也可以(!rdoIndoor.Checked)而不是== false – Oztaco 2012-04-16 20:40:46

回答

6

您正在使用赋值运算符而不是比较运算符。 =运营商用于分配。使用==进行比较。

更重要的是,获得完全摆脱你==运营商,并使用!运营商,像这样:

if (!rdoIndoor.Checked && !rdoOut.Checked && !rdoSwimming.Checked) 
{ 
    MessageBox.Show("Please select an event style"); 
} 
+0

当然是了,谢谢。 :) – Wizard 2012-04-16 20:40:39

2

等于运算符,用于比较值,是== 所以,你的代码应该是:

if ((rdoIndoor.Checked == false) && 
    (rdoOut.Checked == false) && 
    (rdoSwimming.Checked == false)) 
...... 
1

使用双等于符号(rdoIndoor.Checked **==** false)等 单'='表示分配,即i。即从现在开始让'rdoIndoor.Checked'为假。 Double'=='是逻辑测试。 你可能知道;)

+0

我确实这样做了,虽然会让我花费更多的时间去解决问题。 – Wizard 2012-04-16 20:51:33