form1 怎么直接改变form2 窗体的label 值。
注意 form2 不能再show..  form2 是一直在的窗体。.

解决方案 »

  1.   

    在form2的引用的Controls中查找,找到后赋值
      

  2.   

    在Form2中,定义一个变量,然后利用属性封装,即set,get,然后在Form1中访问该属性,并更改
      

  3.   

    最大的问题就是:怎么得到Form2的对象
      

  4.   

    那是不是也要把label设置为静态控件呢?
      

  5.   

    定义静态变量,例如public static Form1 currentForm1
    遍历Application.OpenForms找到类型为Form1的对象 
    public   delegate   void   ChangeHandel(); 
      public   event   ChangeHandel   ChangeEvent; 
                    private   void   Button1_Click(object   sender,   EventArgs   e) 
                    { 
                              if   (ChangeEvent!=   null) 
                                    ChangeEvent(); 
                    } 
    form1里new   Form2 
    Form2   frm   =   new   Form2(); 
    frm.ChangeEvent   +=   new   ChangeHandel(your_event); private   void   your_event() 
    { }
      

  6.   

    再说直接点。
    form1 显示,form2显示,这时from1.button_click  给form2的label1.text 赋值 , form2上的 label1.text立刻发生变化 要这样的效果。
    谢谢。
      

  7.   

     foreach (Form frm in Application.OpenForms)
                {
                    if (frm is Form2)
                    {
                        frm.Controls["label1"].Text = "要赋的值";
                        break;
                    }
                }如果出错,请检查控件的名字对不对.