【问题标题】:windowsform, checkbox, button clickswindows窗体,复选框,按钮单击
【发布时间】:2017-07-13 00:31:37
【问题描述】:

我的问题是关于 c# windows 窗体的。

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

复选框1,复选框2,复选框3

还有一个按钮。

按钮编程是这样的:

    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) {}

等等

【问题讨论】:

  • 请edit您的帖子并提供一个有意义的、描述性的问题或问题,而不是称呼和反刍标签信息。
  • 然后移动你的 if 语句......
  • 这是我见过的最可怕的 if 语句格式/缩进。
  • 谢谢大家..我是C#新手..几天前才开始..我有一个班级项目要执行..

标签: c# winforms


【解决方案1】:

两个直接选项

  1. 更改if 语句的顺序,使其按照您希望检查的顺序排列。
  2. 或更好,测试每个if语句中所有复选框的状态;也就是说,不要只测试是否选中了某些复选框并假设其余的未选中 - 还要测试未选中的复选框。直言不讳!

【讨论】:

    【解决方案2】:

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

    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
                {
    
                }
            }
        }
    

    【讨论】:

    • 谢谢你 Attila.. 我已经弄明白了.. 因为我是编程新手.. 但还是谢谢..
    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 2010-11-10
    • 2021-09-14
    • 1970-01-01
    • 2020-09-04
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多