[英]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.