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

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

开发工具: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>()));
    }
}

三、设计界面如下:

四、运行效果如下:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Sorrower的专栏

界面无小事(三):用RecyclerView + Toolbar做个文件选择器

752
来自专栏GIS讲堂

Arcgis for Javascript API下类似于百度搜索A、B、C、D marker的实现方式

看到了效果,是不是各位有点小鸡动,是不是也宠宠欲动,有木有?但是具体是怎么实现的呢?下面我来详细的给各位说说我的实现思路吧。

903
来自专栏佳爷的后花媛

我的PHP常用代码段

后台进行修改操作时,没有修改图片,再次刷新图片地址为空? 需要在修改函数中加入一个去除空字符串的函数.

682
来自专栏梧雨北辰的开发录

Xcode文档注释使用总结

Xcode作为iOS的开发神器,为我们提供了十分丰富的文档提示功能,在开发过程中,我们可以十分方便的按下Option键,选中一个类或者方法查看其文档说明。而实际...

3024
来自专栏Play & Scala 技术分享

【长期更新】Play-Java开发技巧问答

2734
来自专栏朱慕之的博客

UIWebView与JS的交互

要实现这样一个需求:按照本地的CSS文件展示一串网络获取的带HTML格式的只有body部分的文本,需要自己拼写完整的HTML。除此之外,还需要禁用获取的HTML...

721
来自专栏技术总结

MJRefresh源码剖析与学习

建议查看原文:https://www.jianshu.com/p/23c876f8ae39(不定时更新)

914
来自专栏游戏杂谈

Unity Inspector面板常用的属性

其它还有诸如 HelpURL 等,详情可参考 官方帮忙文档 https://docs.unity3d.com/ScriptReference/HeaderAtt...

663
来自专栏木宛城主

Unity应用架构设计(1)—— MVVM 模式的设计和实施(Part 2)

MVVM回顾 经过上一篇文章的介绍,相信你对MVVM的设计思想有所了解。MVVM的核心思想就是解耦,View与ViewModel应该感受不到彼此的存在。 V...

3849
来自专栏一个爱瞎折腾的程序猿

Ajax 文件上传

原文地址:http://blog.sina.com.cn/s/blog_5d64f7e3010127ns.html

1081

扫码关注云+社区