foreach(Control control2 in this.Controls) 
if(control2 is CheckBox) 

CheckBox chebox = control2 as CheckBox; 
if( chebox.Checked == true) 
Txt += chebox.Text.Trim() + ";"; 
} 我的排列是这样的 
checkbox1  checkbox4 checkbox7 
checkbox2  checkbox5 checkbox8 
checkbox3  checkbox6 checkbox9 
想按1,2,3,4,5,6,7,8,9的顺序来判断是否被选择了然后取其text 赋给Txt 
怎么做到,望指点

解决方案 »

  1.   

    你把这些checkbox放在一个panel中
    然后循环panel中的控件,就可以处理了,容器控件一定要使用啊
    foreach(control c in panel1)
    {
      if( c is checkbox)
      {
        if(c.checked==true)
        {
          txt.text+=c.text;
        }
      }
    }
      

  2.   

    我原来是放在groupbox里面的,groupbox不行吗??
      

  3.   


    int i=0;
    foreach(Control control2 in this.Controls)  
    if(control2 is CheckBox)  
    {  
    CheckBox chebox = control2 as CheckBox;  
    i++;
    if( chebox.Checked == true && chebox.id=="checkbox"+i.ToString())  
    Txt += chebox.Text.Trim() + ";";  
    }   
      
      

  4.   

    panel 也没有用 经发现 他checkbox 是逆序的
      

  5.   

    你为什么要采取foreach的方式呢
    直接从checkbox1 判断到9不行吗。
      

  6.   

    如果是只有9个的话,更正下:for (int i=1;i<10;i++)
    {
    CheckBox chebox = ((CheckBox)Page.FindControl("checkbox"+i.ToString()));
    if (chebox!=null){
    if( chebox.Checked == true) Txt += chebox.Text.Trim() + ";"; 
    }
    }