如何在A窗体中设置B窗体上的BUTTON的Enabled属性?目前实现方法为:
    在A窗体中新建一个public方法,此方法用来设置BUTTON的Enabled属性.
    public void SetEnabled(bool b)
    {
        button1.Enabled = b;
    }    在B窗体调用A窗体中SetEnabled方法:
    A a = new A();
    a.SetEnabled(false);
但是此方法不成功!

解决方案 »

  1.   

    B窗体上的BUTTON public   
    A 上改B.BUTTONname.Enabled=true
      

  2.   

    1.如果A是B的父窗口,则可以用下面的方法解决:
    在A窗体中新建一个public方法,此方法用来设置BUTTON的Enabled属性. 
            public   void   SetEnabled(bool   b) 
            { 
                    button1.Enabled   =   b; 
            }  
    在显示B的时候这样显示:
                      FormB fromB = new FormB();
                    fromB.Show(this);
    在B窗体调用A窗体中SetEnabled方法: 
            FormA formA = (FormA)this.Owner;
            formA.SetEnabled(true);
    2.如果A和B不是父子窗口关系,则可以使用委托:
    在FormA中定义委托类型,和方法:
            public delegate void SetEnableCallback(bool value);
            public   void   SetEnabled(bool   b) 
            { 
                    button1.Enabled   =   b; 
            } 
    在Form B中定义委托变量:
            internal Form2.SetEnableCallback SetEnable;
    显示时:
                FormA fromA = new FormA();
                FormB formB = new FormB();            formB.SetEnable += new FormA.SetEnableCallback(fromB.SetEnabled);            fromA.Show();
                formB.Show();在B窗体调用A窗体中SetEnabled方法: 
             this.SetEnable(true);
      

  3.   

    B窗体botton的属性中设置:Modifiers=public public void SetEnabled(bool b) 
         { 
           Form2 frm = new Form2();
           frm.button1.Enabled =b;
          }       
      

  4.   

    第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如:        public static yourMainWindow pCurrentWin = null;
           然后在主窗体构造函数中,给静态成员初始化,如下:            pCurrentWin = this;
           那么在子窗体中调用父窗体,可以通过“主窗体类名. pCurrentWin”来操作当前的主窗体。
           第二种,是在子窗体中定义一个私有成员,来保存当前主窗体对象,例如:        private yourMainWindow pParentWin = null;              然后在子窗体构造函数中,加一参数,如下:        public yourChildWindow( yourMainWindow WinMain )        {            pParentWin = WinMain;            //Other code}              在主窗体创建子窗体的时候,要把this作为参数来构造子窗体,这样在子窗体中调用父窗体,可以直接用“this.pParentWin”就可以了
           不过以上所作的,只是让你能够访问当前主窗体对象,那么如何操作控件,很多人直接修改控件的成员访问符,即把“private”改为“public”,我觉得这样破坏了本身类的封装,所以我比较喜欢的做法是增加公有属性或方法来供调用,例如:        public string ButtonText        {            get{ return btn.Text;}            set{ btn.Text = value;}        }
            public void Button_Click()        {            this.btnDConvert.PerformClick();//Execute button click        }
      

  5.   

    嘿嘿,我有个笨办法:
    ;
    在b窗口放一个timer控件
    在timer的tick事件中写
    this.button1.enabled = this.tag;
    在a窗口让b窗口button enable的代码这样写:
    b.tag =true
      

  6.   

     你new 了的是新的一个实例 改他当然没用