我是C#的新手,我正试图获得一个复选框的状态。我完成了:
foreach (Control ctr in newProject.Controls) {
if (ctr is CheckBox && ctr.Name.Contains("engine")) {
}
}
ctr.Checked显然不起作用,当ctr是一个复选框时,如何验证ctr的状态?
答案 0 :(得分:4)
一旦您确认它是一个复选框,您就可以转换为正确的类型,并阅读Checked
属性:
foreach (Control ctr in newProject.Controls) {
if (ctr is CheckBox && ctr.Name.Contains("engine")
&& ((CheckBox)ctr).Checked) {
}
}
答案 1 :(得分:3)
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();
答案 2 :(得分:2)
您必须先将其强制转换为复选框。
CheckBox chk = (CheckBox)ctr;
// Now you can do this: chk.Checked
答案 3 :(得分:1)
您的复选框有一个ID,例如checkBox1。您可以使用该ID直接访问复选框控件。
if (checkBox1.Checked) {
...
}