for (int i = 1; i < 13; i++)
                    {
                        if (((CheckBox)("chk"+i.ToString())).Checked)
                        {
                            nn+=i.ToString() + "月销售量;
                                
                          }                     
                    
                    
                    错误 1 无法将类型“string”转换为“System.Windows.Forms.CheckBox”其中有12个复选框 name一次是 chk1 chk2 chk3 ……
取出名称后强制转换能够有check属性 但就是编译报错

解决方案 »

  1.   

    不能这么做,你不能把string类型转换为checkbox类型
    但可以通过遍历控件搞定,
      

  2.   

    好的 谢谢 zishanyan 
      

  3.   


                foreach (System.Windows.Forms.Control  item in this.Controls)
                {
                    CheckBox chk = item as CheckBox ;
                    if (chk != null)
                    {
                        Console.WriteLine(chk.Name);
                        if (chk.Checked)
                        {
                            Console.WriteLine("{0} is checked .", chk.Name);
                            //nn+=chk.Text  + "月销售量; 
                        }
                    }
                }