点击form1的button1按钮生成一个form2,我点击form2上的button1按钮,使form1上面原本不显示的lable显示出来。怎么做??
这两个窗口是不是需要什么父子关系??

解决方案 »

  1.   

    用静态变量可以实现
    如果有一个Frm.cs类,其有一个静态变量form FrmHandl;
    form1 frm1 = new form1()
    frm1.show()
    Frm.FrmHandl = frm1;当form2中按钮调用时
    可以设置利用Frm.FrmHandl找到form1中的label进行更改
      

  2.   

    不是什么父子关系
    实现类似的方法很多,用得最多的方法就是用委托
    请参照:
    http://zhenyulu.cnblogs.com/articles/34044.html
      

  3.   

    public class Form1 : Form
    {
        ...
         private void Button1_Click(object sender,EventArgs e)
         {
             Form2 f2 = new Form2();
             f2.SetLabel(this.label1);
             f2.Show();
         }
        ...
    }
    public class Form2 : Form
    {
         ...
         private Label lb;
         public void SetLabel(Label lb)
         {
              this.lb = lb;
         }
         ...     private void Button1_Click(object sender,EventArgs e)
         {
             if(this.lb != null)this.lb.Visible = true;
         }
    }
      

  4.   

    比较简单的方法:Form1中:
    把Label设置成Public;
                Form2 f2 = new Form2(this);
                f2.Show();Form2中:
     Form1 f1;
            public Form2(Form1 form1)
            {
                InitializeComponent();
                f1 = form1;
            }        private void button1_Click(object sender, EventArgs e)
            {
                f1.button1.Visible = false;
            }
      

  5.   

    onekey(星星离我还很远)  方法正解
    已实现过
      

  6.   

    http://blog.csdn.net/duncansun/archive/2006/01/13/577882.aspx
      

  7.   

    窗体间的数据交互的继中方法
    http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx