foreach(Control ctrl in groupBox1.Controls)
{
if (ctrl is Buttons)
{
    //
}
}

解决方案 »

  1.   


      this.groupBox1.Controls.Add(Button1);
      Button1.Name=i.ToString();
    换成
      Button1.Name=i.ToString();
      this.groupBox1.Controls.Add(Button1);
    试试
      

  2.   

    没问题
    private void button1_Click(object sender, System.EventArgs e)
    {
    for(int i=0;i<10;i++)
    {
    System.Windows.Forms.Button Button1=new Button();
    this.groupBox1.Controls.Add(Button1);
    Button1.Name=i.ToString();
    }
    int aa=groupBox1.Controls.Count;
    MessageBox.Show(aa.ToString());
    }
    弹出对话框显示10
      

  3.   

    private void button2_Click(object sender, System.EventArgs e)
    {
    foreach(System.Windows.Forms.Button bt in groupBox1.Controls)
    {
    int aa=groupBox1.Controls.Count;//aa=0?
    MessageBox.Show(aa.ToString());
    } }
    弹出对话框也显示10
      

  4.   

    我是在一个Form1中
    用如下程序在groupBox1中动态添加10个按钮
    for(int i=0;i<10;i++)
    {
      System.Windows.Forms.Button Button1=new Button();
      this.groupBox1.Controls.Add(Button1);
      Button1.Name=i.ToString
    }
    在Form2中遍历的
    public void SetBackColor(System.Windows.Forms.Form form,string ctrlName,string btName,System.Drawing.Color BackColor,System.Drawing.Color ForeColor)
    {
    foreach(System.Windows.Forms.Control ctrl in form.Controls)
    {
    if(ctrl.Name==ctrlName)
    {
    int aa=ctrl.Controls.Count;
    foreach(System.Windows.Forms.Button bt in ctrl.Controls)
    {
    if(bt.Name == btName)
    {
    bt.BackColor=BackColor;
    bt.ForeColor=ForeColor;
    return;
    }
    }
    }
    }
    }
    此时aa=0
      

  5.   

    我监视了一下,到
    if(ctrl.Name==ctrlName)
    都正常,能根据参数传递进来的名称找到相应的控件,因为是动态创建的按钮,所以ctrl.Controls.Count总显示为零,那么下面的遍历也就无法执行了,请高手解决这个问题。
      

  6.   

    你的GROUP有没有添加到FORM中呀?
      

  7.   

    ctrl.Controls.Count 当然为0 啊