-
C#教程之C#实现根据指定容器和控件名字获得控件
本文所述为C#实现根据指定容器和控件名字获得控件的方法,在进行C#应用程序设计时有一定的借鉴价值。分享给大家供大家参考借鉴。具体实现方法如下:
功能代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/// <summary> /// 根据指定容器和控件名字,获得控件 /// </summary> /// <param name="obj">容器</param> /// <param name="strControlName">控件名字</param> /// <returns>控件</returns> private object GetControlInstance( object obj, string strControlName) { IEnumerator Controls = null ; //所有控件 Control c = null ; //当前控件 Object cResult= null ; //查找结果 if (obj.GetType() == this .GetType()) //窗体 { Controls = this .Controls.GetEnumerator(); } else //控件 { Controls = ((Control)obj).Controls.GetEnumerator(); } while (Controls.MoveNext()) //遍历操作 { c = (Control)Controls.Current; //当前控件 if (c.HasChildren) //当前控件是个容器 { cResult = GetControlInstance(c,strControlName); //递归查找 if (cResult== null ) //当前容器中没有,跳出,继续查找 continue ; else //找到控件,返回 return cResult; } else if (c.Name == strControlName) //不是容器,同时找到控件,返回 { return c; } } return null ; //控件不存在 } |
示例如下:
1
2
|
((Button) GetControlInstance( this , "button7" )).BackColor = Color.Red; ((Button) GetControlInstance( this .groupBox4, "button7" )).PerformClick(); |
希望本文所述实例对大家C#程序设计有所帮助。
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比