具体怎么写

解决方案 »

  1.   


           //这是第一个窗体的一个按钮单击事件
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.Show(this); //this必须写,传递当前窗体
                  this.Visible = false;}
            
            //这是第二个窗体的一个按钮单击事件
             private void button1_Click(object sender, EventArgs e)
            {
                Form1 frm = (Form1)this.Owner; //注意是Owner,不是Owner()
                  frm.Visible = true;
                this.Close();
            }
      

  2.   

    还可使用委托
    使用委托实现两个窗体的交互:
    // 主窗体中
    FromB frm = new FromB("Hello A");
    frm.onReportProgress = new DoReportProgress(OnReportProgress);
    frm.ShowDialog(); // 显示窗体
    private void OnReportProgress(string str)
    {
      MessageBox.Show(str);
    }
    // 子窗体
    public delegate void DoReportProgress(string strInfor);
    public DoReportProgress onReportProgress;
    public FromB(string str) // 传入父窗体的值
    {
      InitializeComponent();
      MessageBox.Show(str);
    }
    public void button1()
    {
      if(onReportProgress!=null)
      onReportProgress("Hello B"); // 调用委托将值返回给父窗体
    }