C# 如何控制表单上的所有元素
尝试启用或禁用表单上的某些元素(复选框和文本框) 阅读并重新制作一点这段代码 代码:C# 如何控制表单上的所有元素,c#,.net,winforms,foreach,controls,C#,.net,Winforms,Foreach,Controls,尝试启用或禁用表单上的某些元素(复选框和文本框) 阅读并重新制作一点这段代码 代码: 我哪里出错了?为什么checkBoxEnableHotKeys.Enabled=true不工作?(-在对这部分代码进行解包时,使用false传递-and操作=不工作-false before和false after…)我喜欢返回表单的所有子控件(包括嵌套控件)的方法 发件人: 我喜欢这个答案: 这里的技巧是控件不是列表或IEnumerable,而是控件集合 我建议使用将返回更多内容的控件扩展..queryabl
我哪里出错了?为什么
checkBoxEnableHotKeys.Enabled=true代码>不工作?(-在对这部分代码进行解包时,使用false传递-and操作=
不工作-false before和false after…)我喜欢返回表单的所有子控件(包括嵌套控件)的方法
发件人:
我喜欢这个答案:
这里的技巧是控件不是列表或IEnumerable,而是控件集合
我建议使用将返回更多内容的控件扩展..queryable;)
public static IEnumerable All(此控件集合控件)
{
foreach(控件中的控件)
{
foreach(Control.Controls.All()中的Control孙辈)
收益回报孙子;
收益率控制;
}
}
然后你可以做:
foreach(var textbox in this.Controls.All().OfType<TextBox>)
{
// Apply logic to the textbox here
}
foreach(此.Controls.All()类型中的var文本框)
{
//将逻辑应用于此处的文本框
}
你到底想做什么?如果要禁用某些控件,请记住禁用控件也会禁用其所有子控件CheckcheckBoxEnableHotKeys
的父控件已禁用。如果是,则您已启用其父级以启用childoh!谢谢添加tableLayoutPanel1.Enabled=true
beforecheckBoxEnableHotKeys.Enabled=true代码>-现在它的工作。-禁用一个控件也将禁用它的所有子控件-注意,谢谢,我希望我意识到你们可以在我以前的工作中得到那个样的type属性。在许多项目中,我有一个递归方法,它迭代所有控件/控件的子项,并根据类型执行大量不同的操作。这会让它更干净。
public static IEnumerable<Control> All(this ControlCollection controls)
{
foreach (Control control in controls)
{
foreach (Control grandChild in control.Controls.All())
yield return grandChild;
yield return control;
}
}
foreach(var textbox in this.Controls.All().OfType<TextBox>)
{
// Apply logic to the textbox here
}