C# 表单上所有文本框的最大长度

C# 表单上所有文本框的最大长度,c#,winforms,maxlength,C#,Winforms,Maxlength,文本框输入值的最大长度可以通过MaxLength属性确定。但我们需要对每个文本框逐一执行此操作 有没有办法为表单上的所有文本框一次性设置MaxLength属性的值?您可以在on_Loaded事件中的代码中进行设置。查询窗体上的所有控件并设置MaxLength。您还可以基于预定义的MaxLength文本框创建自定义控件,并使用它代替标准文本框 之所以使用递归调用,是因为表单具有面板,而文本框位于面板内 以下是获取表单上所有文本框的扩展方法: public static IEnumerable<

文本框输入值的最大长度可以通过MaxLength属性确定。但我们需要对每个文本框逐一执行此操作


有没有办法为表单上的所有文本框一次性设置MaxLength属性的值?

您可以在on_Loaded事件中的代码中进行设置。查询窗体上的所有控件并设置MaxLength。您还可以基于预定义的MaxLength文本框创建自定义控件,并使用它代替标准文本框


之所以使用递归调用,是因为表单具有面板,而文本框位于面板内

以下是获取表单上所有文本框的扩展方法:

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);
       }
公共静态IEnumerable GetChildControls(此控件),其中TControl:Control
{
var children=(control.Controls!=null)?control.Controls.OfType():Enumerable.Empty();
返回children.SelectMany(c=>GetChildControls(c)).Concat(children);
}