查看: 1637|回复: 0

C#下遍历CheckBox组件的三种方法 [复制链接]

hotpower (离线)
积分
82850
帖子
313
发表于 2009-4-3 00:08:57 |显示全部楼层
关键词: CheckBox , 遍历 , 组件
在这里首先感谢网友Ice_Age
Ice_Age
删除评论2008-11-3 22:13:56
foreach (Control c in Controls) { if (c is CheckBox) { ((CheckBox) c).Checked = pdwPortVal & (1 << c.TabIndex)) } } index 也可以放在 Tag 中。
Ice_Age
删除评论2008-11-4 21:53:18
你可以把3组checkbox放入groupbox, panel 等container中,checkbox的索引值放入 tabindex或tag中,则程序很简洁。
            //遍历CheckBox方法1
            foreach (Control c in groupBox1.Controls)//遍历groupBox1内的所有控件
            {
                if (c is CheckBox)//只遍历CheckBox控件
                {
                    ((CheckBox)c).Checked = (pdwPortVal & (1 << (checkBox8.TabIndex - c.TabIndex))) != 0;
                }
            }
            //遍历CheckBox方法2
            /*
            for (int i = 8; i >= 1; i--)
            {
                ((CheckBox)this.Controls.Find("checkBox" + i, true)[0]).Checked = (pdwPortVal & (1 << (8 - i))) != 0;
            }
            */
/*
            //遍历CheckBox方法3
            for (int i = 0; i < 8; i++)
            {
                switch (i)
                {
                    case 0:
                        checkBox8.Checked = (pdwPortVal & (1 << i)) != 0;
                        break;
                    case 1:
                        checkBox7.Checked = (pdwPortVal & (1 << i)) != 0;
                        break;
                    case 2:
                        checkBox6.Checked = (pdwPortVal & (1 << i)) != 0;
                        break;
                    case 3:
                        checkBox5.Checked = (pdwPortVal & (1 << i)) != 0;
                        break;
                    case 4:
                        checkBox4.Checked = (pdwPortVal & (1 << i)) != 0;
                        break;
                    case 5:
                        checkBox3.Checked = (pdwPortVal & (1 << i)) != 0;
                        break;
                    case 6:
                        checkBox2.Checked = (pdwPortVal & (1 << i)) != 0;
                        break;
                    case 7:
                        checkBox1.Checked = (pdwPortVal & (1 << i)) != 0;
                        break;
                }
            }
*/
●█〓██▄▄▄▄▄▄ ●●●●●●→ ''''╭WWWW╮
▄▅██████▅▄▃▂ 传播非典灌水四方 ( ●_●)
███天█马█行█空████ '''',,,;,;,;'''/▇\''
◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲◤ 群魔乱舞见阳光/MMMM\
您需要登录后才可以发表评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备11013910号 | 京公网安备11010502021702
回顶部