windowsform,复选框,按钮点击

时间:2017-02-22 19:13:15

标签: c# winforms

我的问题是关于c#windows form。

我在表单中有三个复选框:

  

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语句, 它处理按钮内的所有功能, 我希望当我检查所有复选框时,它应该只执行此语句,而其他选项应该检查。

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

等等

2 个答案:

答案 0 :(得分:0)

两个直接选项

  1. 更改if语句的顺序,使它们按您希望检查的顺序排列。
  2. 或更好,测试每个if语句中所有复选框的状态;也就是说,不要只测试一些是否被检查并假设其余部分未经检查 - 也可以测试未选中的复选框。要明确!

答案 1 :(得分: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
            {

            }
        }
    }