在winform下,我设置了两个窗体,form1里有一个datagrid,当我双击其中的某一行时,就将我取到的这一行数据都传到form2里的多个对应的文本框里,不知道该怎么做
比如说:datagrid里有   姓名|年龄 当我双击该行时,数据就传到form2的文本框里
                       张三|19姓名:张三
年龄:19
这个怎么实现阿,好急,好急啊,解决了马上给分

解决方案 »

  1.   

    just set a global variable named "FocusedUser".
      

  2.   

    在中写个公共函数,接收 姓名|年龄 参数 ,双击form1里的datagrid时调用此函数并把参数传进去
      

  3.   

    formInfo _formInfo = new formInfo()
    _formInfo.GetInfo(form1.datagrid)在你的信息窗體中取信息的函數加一個參數(datateble)帶進來就可以了!
      

  4.   

    dataGrid1.CurrentCellChanged += new EventHandler(dataGrid1_CellChanged);void dataGrid1_CellChanged(object sender, EventArgs e)
    {
      if (CurrentRowIndex < 0) return;
      form2.textBox1.Text = dataGrid1[dataGrid1.CurrentRowIndex, 数据列号].ToString();
      ...
    }
      

  5.   

    这个很简单.
    在form2里设几个public 变量 .
    然后双击的时候把dategrid1.selection[i](好像是)
    分别给form2的public变量.
    然后form2写一个函数.
    把这几个变量给textbox.
    然后form2.update();
      

  6.   

    private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
    {
        //取出选中记录第一列的值
        string sid1=this.dataGrid1[this.dataGrid1.CurrentRowIndex,0].ToString();
        //取出选中记录第二列的值
        string sid2=this.dataGrid1[this.dataGrid1.CurrentRowIndex,1].ToString();
        //取出选中记录第三列的值
        string sid3=this.dataGrid1[this.dataGrid1.CurrentRowIndex,2].ToString();
    }
    只要取出值你就好办了啊,
    办法1:为Form2添加几个public的string变量,
    在你new Form2之后,
    Form2 fm=new Form2()
    fm.public变量1=上面的sid1;
    fm.public变量2=上面的sid2;
    fm.public变量3=上面的sid3;办法2,修改Form2的构造函数,在new Form2的时候就传过值
    改 form2的 public void Form2() 为 public void Form2(string a1,string a2,string a3);
    创建form2时
    Form2 fm=new Form2(sid1,sid2,sid3);
      

  7.   

    在Form2中创建一个公共函数,用于更新显示,Form1.DataGrid双击时读取数据然后调用该函数就OK
      

  8.   

    我是写在datagrid的单击事件中阿,我是这么写的,Form2 frm =new Form2(datarow);frm.show();
    而在form2的构造函数里public form2(datarow dtr){this.dtrcurrent=dtr}其中datarow是我单击datagrid时取出来的一行数据值,我在form2里新建了一个datarow dtrcurrent 将值传给它,可是编译通过不了