我的panel里面有一些groupbox控件,每一个groupbox控件包含了一个checkbox控件和numericupdown控件,请问怎样通过遍历来分别得到这两种控件
(注:需要在遍历的过程中分别判断checkbox的选定状态和numericupdown的value)

解决方案 »

  1.   

    例如要判断groupbox1里所有被选中的checkbox的个数:
    int i=0;
    foreach(Control c in groupbox1.controls)//遍历groupbox1里的所有控件
    {
        if(c.gettype().name=="checkbox")
        {
            if(c.checked)
            {
                i++
            }
        }
    }
      

  2.   

    递归findtop()
    {
        foreach (var item in Controls)
        {
            if (item.Controls.Count > 0)
                findChild(item);
            else
                //处理item
        }
    }findChild(Control c)
    {
        foreach (var item in c.Controls)
        {
            if (item.Controls.Count > 0)
                findChild(item);
            else
                //处理item
        }
    }
      

  3.   

    请问可以一次遍历同时得到两个checkbox和numericupdown控件不????
      

  4.   

    是在同一个容器下,都是在同一个groupbox下
      

  5.   

    回四楼:那个c根本没有checked属性啊。
      

  6.   

    还请问一下,怎样在遍历的过程中得到每个checkbox的checked属性啊。请各位大侠帮帮忙了,在下急用......
      

  7.   


    foreach (Control c in this.groupBox1.Controls)
    {
         if (c.GetType() == typeof(CheckBox))
         {
                bool isChecked = false;
                //如果只想得到属性,可以:isChecked = ((CheckBox)c).Checked;
                //如果要得到CheckBox实例,则如下:
                CheckBox checkBox = c as CheckBox;
                isChecked = checkBox.Checked;
          }
          else if (c.GetType() == typeof(NumericUpDown))
          {
                 //如上
                 decimal value = ((NumericUpDown)c).Value;
                 }
          }
      

  8.   


     foreach(Control c in this.groupbox.controls)
    {
        if(c is checkbox)
        {
               checkBox c = (checkBox)c;
               if(c.GetType =="CheckBox")
               {
     
                }
         }
    }
    foreach判断容器里的值。