查看: 5951|回复: 0

C#下遍历CheckBox组件的三种方法

[复制链接]
发表于 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;
                }
            }
*/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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