可不可以简单的用ShowDialog呢Form1中
Form2 ss = new From2(string param1,string param2);//修改你的Form2的构造函数,接受这两个参数
ss.showdialog(); 
this.RefreshDataGrid();

解决方案 »

  1.   

    1.现在关掉Form2 的时候怎么让 Form1 重新显示呢.
    可以重载Form2的构造函数,在构建Form2的时候将Form1的引用传入,在Form2的OnClose事件处理函数中通过该引用将Form1 show出来.
    2.如果想在显示Form2的时候,想把Form1的dataGrid1中的某个值传个Form2 应该怎么做
    同1,在构造Form2的时候将该值传入。
    3.如果我只想用让Form2 只能显示一个实例,应该怎么控制呢
    可以用singleton模式。
      

  2.   

    1、可以在生成Form2时在构造函数中传入个Form1的句柄,在关闭时,通过这个句柄来控制Form1 得到焦点  
    2、在构造Form2的时候将这个值做为一个参数传入构造函数中就可以了
    3、你可以选择用Dialog模式的窗口类型来解决。
      

  3.   

    在构建Form2的时候将Form1的引用传入   是把this 当作参数传入吗 ,this 是什么类型啊,是string 还是什么?
      

  4.   

    假如主窗体是From1
    在form1中添加一个私有变量
    private from2 frm2 = new form2();在form1_load事件或构造函数中添加frm2的closing事件
    frm2.Closing += new EventHandler( frm2_Closing );
    添加主窗体事件过程
    void form1_closing( sender , e )
    {
      if ( !frm2.visible )
      {
        frm2.visible = true;
        frm2.Show();
        this.visible = false;
      }
      e.Cancel = false;
    }frm2关闭事件过程
    void frm2_Closing( obj , e )
    {
      if ( !this.visible )
      {
        this.visible = true;
        frm2.visible = false;
      }
      
      e.Cancel = false;
    }
      

  5.   

    关闭程序
    Application.Exit();
    or
    from1.Dispose();传递值可以照楼上的