Panel 中有很多控件,我给它们的命名有一定规则,如何得到Combobox名 前缀为"cb_"的控件的引用?
请给个例子,谢

解决方案 »

  1.   


    foreach(Control col in panel2.Controls)
                {
                    if(col.Name.StartsWith("cb_"))
                    {
                        //TODO...
                    }
                }
      

  2.   

    或者根据控件类型来判断
    foreach(Control col in panel2.Controls)
                {
                    if(col.GetType() == typeof(ComboBox))
                    {
                        //TODO...
                    }
                }
      

  3.   

    foreach (Control col in panel2.Controls)
    {
        //如果按照楼主的命名,可以这样
        if (col.Name.StartsWith("cb_"))
        {
            //你的处理
        }    //不过更正规的方式是
        ComboBox cb = col as ComboBox;
        if (cb != null)
        { 
            //你的处理
        }
    }
      

  4.   


    foreach(Control c in panel.Controls)
    {
        if(c is ComboBox)
        {
            ComboBox cb = c as ComboBox;
            if(cb.Name.StartsWith("cb_"))
            {
                 //do something
            }
        }
    }
      

  5.   

    楼上第二种方式比较好foreach(Control col in panel2.Controls)
                {
                    if(col.GetType() == typeof(System.Windows.Forms.ComboBox))
                    {
                        //TODO...
                    }
                }
      

  6.   

    All of above replies can solve the proble.
      

  7.   

    大家都说了。呵呵,其实就是一个控件组便利foreach就可以了。
      

  8.   

    foreach (Control ctl in panel1.Controls)
    {
        if ((ctl is ComboBox) && ctl.Id.StartWith("cb_"))
        {
            //TODO
        }
    }