你是怎么跟踪的??
断点??
this.Q_KeFang.Controls这里有这个窗体上所有的控件,不只你的按钮!

解决方案 »

  1.   

    我是根据按钮名称遍历的,在Form1中使用正常
      

  2.   

    关键是你这句有问题
    foreach( Button bt in this.Q_KeFang.Controls)你是在form1中执行的,所以它只会对form1中的Button进行了设置
      

  3.   

    foreach( Button bt in this.Q_KeFang.Controls)问题之所在。
    同意楼上的说法
      

  4.   

    请问如何解决这个问题,能否编一个对任意form中的任意groupBox都适用的函数
      

  5.   


    如下修改看看foreach( Control c in this.Q_KeFang.Controls)
       {
         if(c is Button)
            if(c.Name == btName)
         {
    c.BackColor=BackColor;
    c.ForeColor=ForeColor;
          }
       }
      

  6.   

    public void SetBackColor(string btName,Color BackColor,Color ForeColor)
    {
       foreach( Button bt in this.Q_KeFang.Controls)
       {
         if(bt.Name == btName)
         {
    bt.BackColor=BackColor;
    bt.ForeColor=ForeColor;
          }
       }
    }要对bt重新付值才行。bt.Name == btName
      

  7.   

    要对bt重新付值才行。bt.Name = btName
      

  8.   

    public void SetBackColor(string btName,Color BackColor,Color ForeColor,Object myContainer)  ////note added a Container Object Parameter//
    {
       foreach( Button bt in myContainer.Controls) //note the change
       {
         if(bt.Name == btName)
         {
    bt.BackColor=BackColor;
    bt.ForeColor=ForeColor;
          }
       }
    }
      

  9.   

    invoke :
    -----------------
    Form1 form1=new Form1();
    Color BackColor=Color.Red;
    Color ForeColor=Color.White;
    //note pass the form1 object into
    form1.SetBackColor("1209",BackColor,ForeColor,from1);