如果一个复选框列表被取消选中,显示一个警告消息
本文关键字:一个 显示 消息 警告 列表 复选框 如果 取消 | 更新日期: 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");
没有测试过,但是应该可以运行