LINQ如何递归子控件

private void SetTextReadOnly(Control ctr, bool blReadOnly)
        {
            ctr.Controls.Cast<Control>().Select(s => s).ToList<Control>().ForEach(s =>
                {
                    if (s.GetType() == typeof(TextBox))
                        ((TextBox)s).ReadOnly = blReadOnly;

                    if (s.HasChildren)
                    {
                        SetTextReadOnly(s, blReadOnly);
                    }
                });

            //foreach (Control c in ctr.Controls)
            //{
            //    if (c.GetType() == typeof(TextBox))
            //    {
            //        ((TextBox)c).ReadOnly = true;
            //    }
            //    if (c.HasChildren)
            //    {
            //        SetTextReadOnly(c, blReadOnly);
            //    }
            //}
        }

  

原文地址:https://www.cnblogs.com/51net/p/3897431.html