C# 除非选中至少 1 个项目,否则禁用按钮

The*_*End 1 c# validation checkbox

有一个包含 3 个复选框项目和一个按钮的表单。除非表单上至少检查了 1 个以上项目,否则请禁用“完成”按钮。

private void btnFinish_Validating(object sender, CancelEventArgs e)
    {
        if ((checkBlinna.Checked == false && checkSoup.Checked == false) || (checkBlinna.Checked == false && checkGnocchi.Checked == false) || (checkSoup.Checked == false && checkGnocchi.Checked == false))
        {
            btnFinish.Enabled = false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

认为这可行,但该按钮从一开始就启用,并且当选中任何复选框时,该按钮将永远禁用。

Ale*_*x J 5

你可以做 :

void UpdateFinishEnabled()
{
    var boxes = new CheckBox[] { checkBlinna, checkSoup, checkGnocchi };
    btnFinish.Enabled = boxes.Any(b => b.Checked);
}
Run Code Online (Sandbox Code Playgroud)

在表单加载和验证处理程序内部调用。