本帖最后由 zhouxicai 于 2013-07-02 17:53:52 编辑

解决方案 »

  1.   

               Form2 form2 = new Form2();
                DialogResult r = form2.ShowDialog();
                if (r == System.Windows.Forms.DialogResult.Cancel)
                {
                    MessageBox.Show("这里执行你要的代码吧。");
                }
      

  2.   

    其实你用  ShowDialog 都不需要隐藏主窗体
      

  3.   


    Form2 frm2 = new From2();
    frm2.FormClosed += delegate(object s, FormClosedEventArgs fe) { this.Show();};
      

  4.   

    在你的 form1窗体写一个方法 
    this.show();在form2 定义一个委托
    在显示form2的时候给这个委托赋值在form2窗体关闭事件里执行委托form1
    public void ShowForm()
    {
    this.Show();
    }
    //显示form2时给form2定义的委托赋值
    form2 f = new fomr2();
    f.showForm = ShowForm;form2
    public delegte void showForm;
    //窗体关闭时调用委托
    if(showForm != null)showForm();
      

  5.   

    在属性选项卡中切换到事件选项卡,然后双击Form_Closed中注册关闭事件,然后在对于的关闭事件中处理隐藏窗体2的逻辑就好了。
      

  6.   

    form2的构造函数重载一下
    form2(form own)
    {
    this.Owner=own;
    }
    form1在创建窗体的时候要new form2(this)在form2的中加入以下代码就行了
            protected override void OnClosing(CancelEventArgs e)
             {
                 // 这里写关闭窗体要执行的代码            //  this.OnClosing(e);
                 this.Owner.Close();
             }
      

  7.   

    FORM2 form2=new FORM2();
    this.Hide();
    form2.ShowDialog();
    this.Show();或者把FORM1传入form2中
    在FORM2中写如下代码
    FORM1 form1=null;
    public FORM2(FORM1 form1){
      this.form1=form1;
    }在FORM2中的FormClosed或FormClosing事件中写如下代码
    form1.Show();FORM1中调用如下
    FORM2 form2=new FORM2(this);
    this.Hide();
    form2.Show();或form2.ShowDialog();