首先,我个人认为你的思路可能可以改变一下,你并不需要Form1来控制Form2上的事件,而让Form2自己来处理。这也正是面向对象编程的精髓所在。
如果这样,你可以在Form2中实现DoubleClick事件,这是很简单的。因为Form本身就提出了事件可编写。另外在Form2中定义一个公共属性,在事件处理函数中,记录因为事件而带来的改变。那么在Form2返回时,就可以调用该属性。代码实现,我想在Form2写事件是很简单的,不需要写出。
以下写出调用Form的处理过程。

解决方案 »

  1.   

    示例代码如下:
    private void button1_Click(object sender, System.EventArgs e)
    {
    Form form2 = new Form();
    form2.Text = "xiammy";
    if (form2.ShowDialog(this).Equals(DialogResult.OK)) 
    {
    this.Text = form2.Text;
    };
    }Good Luck!
      

  2.   

    简单但是不太好的办法。
    你在Form1中定义一个静态变量  public static string bianliang=""; 然后在Form2的双击事件中加上 Form1.bianliang="哈哈哈"; this.close();就行了
      

  3.   

    方法有很多:
    将form2中的变量设置为public
    打开form2时将form1传递给form2
    或者声明为静态的
      

  4.   

    楼主为何不尝试用属性来实现?你在Form1中定义一个静态变量,对应一个静态属性
                      private static string property;
    public static string Property
    {
    set
    {
    property = value;
    }
    }在Form2的双击事件里做如下处理:
    frmLogin.Property = "After DoubleClick";
    this.Close();
    这样,Form1中的静态变量property就赋值成功了!你可以用一个MessageBox来验证一下。
      

  5.   

    zhuohs(凌九霄)的方法我最常用,并且还很好用,还可以传递数组之类的,常用的为一个订单,传递订单的详细描述