如果一个复选框列表被取消选中,显示一个警告消息

本文关键字:一个 显示 消息 警告 列表 复选框 如果 取消 | 更新日期: 2023-09-27 18:12:28

我有一个存储在数组中的复选框列表。假设我有6个复选框,如果没有一个复选框被选中,那么它将在消息框中显示一条消息,说"不允许空字段"。我有个办法,但好像不太对。如有帮助,不胜感激

这是我的代码。
   private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox[] mySecondaryCheckBoxArray = new CheckBox[6];
            mySecondaryCheckBoxArray[0] = secondaryCheckBox1;
            mySecondaryCheckBoxArray[1] = secondaryCheckBox2;
            mySecondaryCheckBoxArray[2] = secondaryCheckBox3;
            mySecondaryCheckBoxArray[3] = secondaryCheckBox4;
            mySecondaryCheckBoxArray[4] = secondaryCheckBox5;
            mySecondaryCheckBoxArray[5] = secondaryCheckBox6;

                //if check box "ALL" is checked, disable the other check box
                foreach(CheckBox secondaryCB in mySecondaryCheckBoxArray)
                {
                    if(secondaryCheckBoxALL.Checked== true)
                    {
                        secondaryCB.Enabled = false;
                    }else
                    {
                        secondaryCB.Enabled = true;
                    }
                }

        }
    //button name call button1
     private void button_Click(object sender, EventArgs e)
        {
         //When this button is clicked, it checked if all the checkbox is checked. If not, display an message in the message box
          CheckBox[] myConfirmSecondaryCheckBoxArray = new CheckBox[6];
            myConfirmSecondaryCheckBoxArray[0] = classCheckBoxALL;
            myConfirmSecondaryCheckBoxArray[1] = classCheckBoxA;
            myConfirmSecondaryCheckBoxArray[2] = classCheckBoxB;
            myConfirmSecondaryCheckBoxArray[3] = classCheckBoxC;
            myConfirmSecondaryCheckBoxArray[4] = classCheckBoxD;
            myConfirmSecondaryCheckBoxArray[5] = classCheckBoxE;
           //Check for loop
           foreach (CheckBox secondaryCB in myConfirmSecondaryCheckBoxArray)
            {   
                //This part doesn't work because the message box showed up 6                  times
               if (secondaryCB.Check ==false)
                {
                    MessageBox.Show("Empty field not allowed");
                }
            }

       }

如果一个复选框列表被取消选中,显示一个警告消息

测试可以是这样的(Linq):

  private void button_Click(object sender, EventArgs e) {
    ...    
    if (myConfirmSecondaryCheckBoxArray.All(checkBox => !checkBox.Checked))
      MessageBox.Show("Empty field not allowed");
  }

也可以简化其他代码,例如

  ...
  secondaryCB.Enabled = myConfirmSecondaryCheckBoxArray.Any(checkBox => checkBox.Checked);

您可以使用

if(myConfirmSecondaryCheckboxArray.Any(e => !e.Checked))
    MessageBox.Show("Empty field not allowed");

没有测试过,但是应该可以运行

相关文章: