簡體   English   中英

如果未選中復選框列表,則顯示警報消息

[英]Display an alert message if a list of check box is uncheck C#

我有一個存儲在數組中的復選框列表。 假設我有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");

沒有測試過,但應該可以

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM