2017-02-22 104 views
-6

我的问题是关于C#窗体。windowsform,复选框,按钮点击

我有一个形式三个复选框:

checkbox1,checkbox2,checkbox3

和一个按钮。

按钮编程是这样的:

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
    { 

    } 

    private void checkBox2_CheckedChanged(object sender, EventArgs e) 
    { 

    } 

    private void checkBox3_CheckedChanged(object sender, EventArgs e) 
    { 

    } 
    private void button6_Click(object sender, EventArgs e) 
    { 
     if (checkBox1.Checked) 
     { 
     } 
     else 
     if (checkBox2.Checked) 
     { 
     } 
     else 
     if (checkBox3.Checked) 
     { 
     } 
     else 
      if (checkBox1.Checked && checkBox2.Checked) 
     { 
     } 
     else 
     if (checkBox1.Checked && checkBox3.Checked) 
     { 
     } 
     else 
     if (checkBox2.Checked && checkBox3.Checked) 
      { 
      } 
     else 
     if (checkBox1.Checked && checkBox2.Checked && checkBox3.Checked) 
     { 
     } 
     else 
     { 
    MessageBox.Show("Please Select an Checkbox to Perform"); 
     } 

     MessageBox.Show("All Done!"); 
    } 

我的问题是,当如果我检查所有三个复选框它经历了整个如果按钮中的语句, 它处理的按钮中的所有功能, 我希望当我检查所有复选框时,它应该只执行这个语句,而其他的选中。

//If(checkbox1.checked && Checkbox2.checked && checkbox3.Checked) {} 

+1

请编辑您的帖子,并提供一个有意义的描述性问题或问题,而不是标签信息的称呼和回流。 –

+2

然后移动你的if语句...... –

+0

这是我见过的if语句中最可怕的格式/缩进。 – Filburt

回答

0

两个直接的选择

  1. 更改if语句的顺序,以便他们在你喜欢它们的检查顺序。
  2. 或更好,测试每个if语句中的所有复选框的状态;也就是说,不要只测试一些是否被选中,并假设其余的都未被选中 - 同时测试未选中的复选框。要明确!
0

一切都取决于您的代码的主要逻辑。这是你的问题的一个简单的解决方案。首先检查他们所有人,然后只检查他们,然后单独检查。

private void button6_Click(object sender, EventArgs e) 
    { 
     if (checkBox1.Checked && checkBox2.Checked && checkBox3.Checked)//checking all of them first 
     { 

     } 
     else if (checkBox1.Checked && checkBox2.Checked)//checking only pairs 
     { 

     } 
     else if (checkBox1.Checked && checkBox3.Checked)//checking only pairs 
     { 

     } 
     else if (checkBox2.Checked && checkBox3.Checked)//checking only pairs 
     { 

     } 
     else//check them here individually 
     { 
      if (checkBox1.Checked) 
      { 

      } 
      else if (checkBox2.Checked) 
      { 

      } 
      else if (checkBox3.Checked) 
      { 

      } 
      else//none of them are checked 
      { 

      } 
     } 
    } 
+0

谢谢Attila ..我已经搞清楚了..因为我是新编程。但无论如何感谢.. –