循环访问 C# 中复选框的控件
本文关键字:控件 复选框 访问 循环 | 更新日期: 2023-09-27 17:55:08
我想浏览form.tab中的所有复选框并将它们标记为未选中。我发现这是正确的决定:
foreach (Control c in this.Controls)
{
CheckBox cb = c as CheckBox;
if (cb! = null & & cb.Checked)
{
cb.Checked = false;
}
}
但它不起作用!我不明白为什么。我看了调试器,cb
null
.为什么会这样?我哪里做错了?
复选框可能包含
在某个容器中,因此您必须执行一些递归查找或直接迭代此容器的 Controls-集合。
private void FindControls(Control Page)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is CheckBox)
{
if (cb! = null & & cb.Checked)
{
cb.Checked = false;
}
}
else
{
if (ctrl.Controls.Count > 0)
{
FindControls(ctrl);
}
}
}
}
尝试将第一行从:
this.Controls
自
this.tab.Controls
当前代码直接在窗体上的控件中循环。您需要循环浏览选项卡上的控件。
我认为复选框控件的形式可能不是其他容器,例如组框或面板