>>在Windows表单应用程序中访问特定的儿童控件 >经常,开发人员需要在Windows表单应用程序中找到某种类型的所有控件。 本文概述了完成此任务的几种有效方法。
方法1:直接键入访问>这种简单的方法利用表单的
属性直接访问与特定类型匹配的控制。 例如,要检索所有文本框:
Controls
Control[] textboxes = this.Controls.OfType<TextBox>().ToArray();
或者,LINQ表达式提供了一种基于类型过滤控制的简洁方法。 以下代码摘要检索所有按钮:
方法3:递归搜索var buttons = from ctrl in this.Controls where ctrl.GetType() == typeof(Button) select ctrl;
>
对于具有嵌套控件的方案,需要递归功能。此函数通过所有控件迭代,并返回指定类型的功能:
public IEnumerable<Control> GetAllControlsOfType(Control parent, Type type) { foreach (Control ctrl in parent.Controls) { if (ctrl.GetType() == type) yield return ctrl; foreach (Control child in GetAllControlsOfType(ctrl, type)) yield return child; } }
选择正确的方法
var textboxes = GetAllControlsOfType(this, typeof(TextBox));
最佳方法取决于您表格结构的复杂性。 直接类型访问是简单表单的理想选择,而LINQ和递归方法更适合具有嵌套控件的表格。
以上是如何在Windows表单中有效检索特定的儿童控制?的详细内容。更多信息请关注PHP中文网其他相关文章!