开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 4239|回复: 0

[教程] 窗体控件选择

[复制链接]

0

精华

105

贡献

62

赞扬

帖子
104
软币
876
在线时间
101 小时
注册时间
2013-8-21
发表于 2014-8-31 18:38:38 | 显示全部楼层 |阅读模式
[C#] 纯文本查看 复制代码
public static class WinFormControlSelector
    {
        /// <summary>
        /// 遍历控件得到所有类型的控件的集合
        /// </summary>
        /// <typeparam name="T">控件类型</typeparam>
        /// <param name="control">控件</param>
        /// <param name="filter">过滤条件,参数为一个委托类型的变量,
        /// 执行一个具有一个参数并且返回bool类型的变量,当返回值为true的时候添加到选择集内当查询结果为
        /// false的时候不添加到返回的结果集</param>
        /// <returns>控件类型集合</returns>
        public static IEnumerable<T> GetControls<T>(this System.Windows.Forms.Control control, Func<T, bool> filter) where T : System.Windows.Forms.Control
        {
            foreach (System.Windows.Forms.Control c in control.Controls)
            {
                if (c is T && (filter == null || filter(c as T)))
                {
                    yield return c as T;
                }
                foreach (T _t in GetControls<T>(c, filter))
                    yield return _t;
            }
        } 
 
        /// <summary>
        /// 对集合中的所有元素进行操作
        /// </summary>
        /// <typeparam name="T"> 元素类型</typeparam>
        /// <param name="source">数据源</param>
        /// <param name="action">操作方式,参数为一个委托类型的变量,执行一个没有返回值的方法</param>
        public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
        {
            foreach (var item in source)
                action(item);
        }
    }


窗体控件选择代码注释非常详细 实现选择窗体内某个容器内的所有制定类型的控件并对他 它 进行相应的操作


详细信息参考 http://www.cnblogs.com/ldp615/archive/2009/08/07/1541404.html
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-23 13:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表