解决方案 »

  1.   

    窗体B 中定义一个public 窗体A a
    初使化窗体B时窗体B b=new 窗体B()
    b. a=this
    b.show();
    这里窗体b就能操作窗体a里的datagridview1
      

  2.   

    Form1代码        public delegate void AddRowHandler(DataGridViewRow row);
            public event AddRowHandler AddRow;        private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                this.AddRow += f2.AddRow;
                f2.Show();
            }        private void button2_Click(object sender, EventArgs e)
            {
                DataGridViewRow selRow = this.dataGridView1.SelectedRows[0];
                DataGridViewRow row = selRow.Clone() as DataGridViewRow;
                for (Int32 i = 0; i < selRow.Cells.Count; i++)
                {
                    row.Cells[i].Value = selRow.Cells[i].Value;
                }
                this.AddRow(row);
            }
    //Form2代码        public void AddRow(DataGridViewRow row)
            {
                this.dataGridView1.Rows.Add(row);
            }
      

  3.   

    你要效率好的,用委托,还可以定义一个第三方类来传值。还可以把this传过去方法多种
      

  4.   

    窗体B定义事件,事件促发委托异步跟新界面
    窗体A DataGridView双击事件上,获取该行的数据,调用窗体B的促发事件,跟新界面
    这样就可以了
      

  5.   

    解决方案 
        1.把DataGridView  的属性设置成Public
            2.Form2中定义个事件    public  acction<定义类型> OnDoubleCliecEvent;  或者 public delegate void OnDoubleClickhandel(你定义的类型),  public event OnDoubleClickhandel   OnDoubleClick;
    http://www.51zxw.net/study.asp?vip=8963801 
    有需要学习的可以进来秒哈