现在的位置: 首页 > 综合 > 正文

关于CS模式下,控制一个容器内控件的值问题

2012年01月19日 ⁄ 综合 ⁄ 共 839字 ⁄ 字号 评论关闭

 

 

 

     今天因为要做一个面板容器,面板容器里放了25个CheckBox控件,因为本人先排好了1-5个,然后自己随意COPY ,PASTE,而且中途还调换了很多控件的位置,最后命名的时候,虽然都是不管位置,都是1-25这样的编号编制过去的,可我再运用foreach循环的时候,确实是让我郁闷了很久,每次循环的时候,都是从ID编号15的位置开始查找,我这就纳闷了,反正我是第一次开始从事C/S模式开发,这个winForm我简直就是相当的感冒。

   后来咨询了下曾经开发C/S的朋友,他比较熟悉这块,他就说了,这个先必须在ADD的时候确立顺序,因为代码是从头至尾执行的,你先生成的控件,肯定得先去找到,呵呵,一下子如醍醐灌顶般,让我开窍了,有的时候你可能也是因为不熟悉,或者脑袋短路没及时的想到那里去,偶尔朋友帮忙,也觉得不错。见图

然后就直接写了代码进行全选等或者不全选等:

见代码

if (cbPortXSelectAll.Checked)
{
foreach (CheckBox cb in pnlPortXSlotAll.Controls)
{
cb.Checked
= true;
}
}
else
{
foreach (CheckBox cb in pnlPortXSlotAll.Controls)
{
cb.Checked
= false;
}
}

我这个还要就是有个功能当你选择一部分的时候,你可能需要取部分的值,比如,我选择了就为O,不选择就是X,那这代码就是如下代码可以实现:

自己写的,当做记录!

 


public string getinfo()
{
string  tempSlotInfo ="";
foreach (CheckBox cb in pnlPort1SlotAll.Controls)
{
if (cb.Checked)
{
tempSlotInfo
+= "O".ToUpper();
}
else
{
tempSlotInfo
+= "X".ToUpper();
}
}
return tempSlotInfo.ToUpper().ToString();
}

 

抱歉!评论已关闭.