c#复选框验证状态

本文关键字:状态 验证 复选框 | 更新日期: 2023-09-27 18:25:28

我是C#的新手,我正在尝试获取复选框的状态。我已经完成了:

foreach (Control ctr in newProject.Controls) {
                if (ctr is CheckBox && ctr.Name.Contains("engine")) {
                }
            }

ctr.Checked显然不起作用,当ctr是一个复选框时,我如何验证ctr的状态?

c#复选框验证状态

一旦验证了它是一个复选框,就可以转换为正确的类型,并读取Checked属性:

foreach (Control ctr in newProject.Controls) {
            if (ctr is CheckBox && ctr.Name.Contains("engine") 
                    && ((CheckBox)ctr).Checked) {
            }
        }
var checkBoxes = newProject.Controls
    .OfType<CheckBox>()
    .Where(x => x.Name.Contains("engine"))
    .ToList();
foreach(var cb in checkBoxes)
{
    if (cb.Checked)
        // rest of your code...
}

如果你只对选中的感兴趣,请使用:

var checkBoxes = newProject.Controls
    .OfType<CheckBox>()
    .Where(x => x.Name.Contains("engine") && x.Checked)
    .ToList();

您必须首先将其强制转换为复选框。

 CheckBox chk = (CheckBox)ctr;
 // Now you can do this: chk.Checked

您的复选框有一个ID,例如checkBox1。您可以使用该ID直接访问复选框控件。

if (checkBox1.Checked) {
    ...
}