迭代多个文本框
在 Windows 窗体应用程序中,您遇到了循环遍历 37 个具有连续名称的文本框的挑战,每个文本框名为“DateTextBox”,后跟数字后缀。您的任务涉及根据循环计数器“i”为这些文本框分配一个值。
递归控制检索
要有效解决此问题,请利用可以的扩展方法递归检索特定类型的所有控件和子控件。这是它的代码:
public static IEnumerable<TControl> GetChildControls<TControl>(this Control control) where TControl : Control { var children = (control.Controls != null) ? control.Controls.OfType<TControl>() : Enumerable.Empty<TControl>(); return children.SelectMany(c => GetChildControls<TControl>(c)).Concat(children); }
实现
要使用此方法,您可以检索表单中存在的所有文本框:
var allTextBoxes = this.GetChildControls<TextBox>();
获得文本框列表后,您可以循环遍历每个文本框并根据文本分配适当的值'i' 计数器:
foreach (TextBox tb in allTextBoxes) { tb.Text = ...; }
通过实施这种方法,您可以有效地迭代大量文本框并动态分配值,即使它们放置在嵌套面板中也是如此。
以上是如何有效地循环访问 Windows 窗体应用程序中的多个按顺序命名的文本框并为其赋值?的详细内容。更多信息请关注PHP中文网其他相关文章!