C#中groupBox的CheckBox。。。菜鸟问题
- C# code
foreach (Control y in groupBox1.Controls) { CheckBox ca = (CheckBox)y; ca.Checked = CCharToBool.CharToBool(charPurview[int.Parse(ca.Tag.ToString())]); }
在groupBox1中有N个CheckBox,上面代码中得CheckBox ca = (CheckBox)y; 是神马意思?
还有ca.Tag.ToString()返回的是什么?
另外,如果我在一个groupBox中添加很多歌CheckBox,如20个,怎么知道哪个是第几个?
刚接触Winform的东东,很多不懂。。。。
[解决办法]
你前台添加的那么多个CheckBox的话,每个都有一个唯一标识的ID,就通过这个来区分是哪个。
就像咱中国有这么多人,怎么区分?每个人都有一个身份证的嘛
- C# code
foreach (Control c in groupBox1.Controls){ //只遍历CheckBox控件 if (c is CheckBox) { if(c.Checked) { MessageBox.Show("被选中的CheckBox有:"+c.ID); } }}
[解决办法]
CheckBox ca = (CheckBox)y;
这个将Control转换成CheckBox,因为Control是CheckBox的父类,所以要强制转换
Tag属性可以用来存取数据,ca.Tag.ToString()是获取Tag属性的值,Tag属性的类型是Object
[解决办法]
向下转型
[解决办法]
另外,如果我在一个groupBox中添加很多歌CheckBox,如20个,怎么知道哪个是第几个?
这个问题你可以看控件属性里的 Tabindex
[解决办法]
强制转换
[解决办法]
强制转换
[解决办法]
CheckBox ca = (CheckBox)y; 的意思是: 将y强制转化为CheckBox类型对象,赋值于ca。
ca.Tag.ToString(); 返回的是控件ca的tag值。Tag值可读可写。
groupBox中的每一个CheckBox控件都有TabIndex属性,且默认从0开始,可根据此值确定CheckBox是第几个。
[解决办法]
[解决办法]