码迷,mamicode.com
首页 > Windows程序 > 详细

[C#]获得WindowsForm上所有特定类型的控件

时间:2017-12-14 16:30:22      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:语言   位置   frame   c#   开发工具   ==   child   sel   concat   


本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢!


开发工具:VS2017

语言:C#

DotNet版本:.Net FrameWork 4.0及以上

一、本文使用的C#语言要点有以下几个:

拓展方法、泛型方法、泛型约束、递归,不懂的可以自行百度

二、具体代码如下:

public static class Utils
{
    public static IEnumerable<TControl> GetChildControls<TControl>(this Control control) where TControl : Control
    {
        if (control.Controls.Count == 0)
        {
            return Enumerable.Empty<TControl>();
        }
        var children = control.Controls.OfType<Control>().ToList();
        return children.OfType<TControl>().Concat(children.SelectMany(n => n.GetChildControls<TControl>()));
    }
}

三、设计界面如下:

技术分享图片

四、运行效果如下:

技术分享图片

[C#]获得WindowsForm上所有特定类型的控件

标签:语言   位置   frame   c#   开发工具   ==   child   sel   concat   

原文地址:http://www.cnblogs.com/cncc/p/8038286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!