首页 新闻 会员 周边

C#如何循环访问多个控件

1
[已解决问题] 解决于 2020-08-24 10:54


如图所示,由48个CheckBox控件,控件Name是有规律的cb1~cb48,我目的是将这48个控件的Checked属性同步绑定到一个Bool[] Arr = new Bool[48];的布尔数组里,比如cb1的Checked属性是true,Arr[0]就对应是true。
有什么办法是可以实现以下的思路嘛?
1、循环访问有规律的Name名称,锁定对应控件
2、每个控件的Checked属性可以绑定到数组的某个值数据中
3、或者存在更好的思路和方法?
如果有更方便、更简洁的方法是最好的!

😀明笔记的主页 😀明笔记 | 初学一级 | 园豆:13
提问于:2020-08-21 17:57

(https://img2020.cnblogs.com/blog/924295/202008/924295-20200824103640709-160392181.jpg)
你需要把checkbox放在panel面板上,界面如下图
(https://img2020.cnblogs.com/blog/924295/202008/924295-20200824103915515-1951581957.jpg)
这个是调用
(https://img2020.cnblogs.com/blog/924295/202008/924295-20200824104050989-1292624604.jpg)
代码我发在下一条评论中,如果问题得到解决,希望能关注一下我,谢谢!

王精灵 3年前

这里评论图片显示不了,核心代码和界面我发你的短消息了,如果需要源码,你再联系我。或者有其它问题,也可以一起讨论。祝你早日解决问题。

王精灵 3年前
< >
分享
最佳答案
1

用checkbox的父控件名字点findcon开头的一个函数,这个函数的意思是遍历这个父级别控件的所有子控件,然后再在子控件中判断控件类型为checkbox的,就可以获得该控件的选中状态,至于要和数组对应嘛,你字符是有规律的,处理下就完事了嘛,手机打字的,望采纳

奖励园豆:5
王精灵 | 菜鸟二级 |园豆:207 | 2020-08-22 08:54

没有找到你说的函数

😀明笔记 | 园豆:13 (初学一级) | 2020-08-24 08:47

@😀明笔记: 答案在问题的评论区,,不在回答区

😀明笔记 | 园豆:13 (初学一级) | 2020-08-24 10:55
其他回答(4)
0

上wpf,mvvm模式轻松搞定

屋檐不懂雨 | 园豆:27 (初学一级) | 2020-08-21 19:45

现在前提是Winform哈哈哈

支持(0) 反对(0) 😀明笔记 | 园豆:13 (初学一级) | 2020-08-24 08:52
0

反射 ,赋值,事件 改值。

花飘水流兮 | 园豆:13560 (专家六级) | 2020-08-21 20:35

我要创建48个事件?

支持(0) 反对(0) 😀明笔记 | 园豆:13 (初学一级) | 2020-08-24 08:58
1

从数据到控件:循环赋值;从控件到数据:事件触发;
用Name后缀,或者Tag属性把两者关联起来

sweetjian | 园豆:276 (菜鸟二级) | 2020-08-22 13:25

从数据到控件:循环赋值,怎么实现?代码中该不会要48个控件的Tag都要写出来把?

支持(0) 反对(0) 😀明笔记 | 园豆:13 (初学一级) | 2020-08-24 08:51

@😀明笔记: 不用。绘制控件的时候,48个Tag已经硬编码了,代码里通过Control.Controls 属性,查找所有子控件下所有的 CheckBox,然后根据tag判断到底是哪个CheckBox

支持(0) 反对(0) sweetjian | 园豆:276 (菜鸟二级) | 2020-08-24 10:43

@sweetjian: ok,问题已经解决

支持(0) 反对(0) 😀明笔记 | 园豆:13 (初学一级) | 2020-08-24 10:53
0

用控件数组处理起来特别轻松。直接设定tag的值为控件的编号,然后循环遍历就可以了。

阿->风 | 园豆:202 (菜鸟二级) | 2020-08-27 00:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册