有两个窗口,form1和form2。
form1从数据库读取数据,把数据显示在中的datagridview1上面,然后上面有一些列的值是由用户手动输入,输入完毕后,点击一个按钮,弹出form2窗口,上面有个datagridview2,显示datagridview1的内容加上用户刚刚输入的那些数据,请问这个值传递应该怎么做呢?

解决方案 »

  1.   

    form2中
    pubic object objSource;
    form1中
    form2 f = new form2();
    f.objSource = this.datagridview1.DataSource;
    f2.Open();
    form2_load中
    this.datagridview2.DataSource = this.objSource;
    //如果需要DataMember 
    this.datagridview2.DataMember = "";
      

  2.   

    定义public变量,然后传递form1的实例到form2,或者在form2中加一个变量,在form1中访问,方法太多了
      

  3.   

    form2中
    pubic DataGridView grd;
    form1中
    form2 f = new form2();
    f.grd= this.datagridview1;
    f2.Open();
    form2_load中
    this.datagridview2.DataSource = this.grd.DataSource;
    //如果需要DataMember  
    this.datagridview2.DataMember = this.grd.DataMember;
      

  4.   

    刚刚你们说的方法我试过了。问题在我的datagridview1是手动赋值的,没有DataSource。
    所以这个方法不行。
    请问还有其他办法吗?
      

  5.   

    看看这样行不
    你在form1中专门写一个公共方法 这个方法是用来加载datagridview1的数据的 这个方法的参数是datagridview 在form2中访问这个方法你看行不
      

  6.   

    我设置一个公共的变量Datagridview Dgv1
    然后通过这个变量传值可以不可以?
    能传过去吗?
      

  7.   

    用构造函数将datagridview1传给from2就可以实现
      

  8.   

    还是不行
    两个datagridview类型直接用=号没有重载的。
    我现在的想法是把form1的datagridview1这个实例传到form2去,然后对datagridview2进行一对一的赋值,但是不用datasource捆绑的方法,请问应该怎么做?
      

  9.   

    终于搞定了,但是本人水平菜,不会用datagridview传值,只能用的公共二维数组变量传值的方法。
    4L的方法应该可行,不过由于我的datagridview不是绑定datasource的,所以没法用datasource传值的方法了。