我也有想过这个思路,我的表有主键,所以可以获取主键再到数据库检索然后显示。但是这样太浪费资源了^
直接传个datarow[ ]数据集过去呗.
然后另一个窗口接收到这个数据集,就add到自己的表里.

解决方案 »

  1.   

    定义一个类  
    把 选中 行的值 付给你定义的类
    点击确定的时候
    用 定义的类 分别给 form1 的dgv赋值
      

  2.   


    我也有想过这个思路,我的表有主键,所以可以获取主键再到数据库检索然后显示。但是这样太浪费资源了^如果嫌浪费资源,就从DGV中获取这一列的值,一个个赋值到单元格中,不过感觉太麻烦了
      

  3.   

     private void button1_Click(object sender, EventArgs e)
            {
                Form3 f = new Form3();
                if (f.ShowDialog() == DialogResult.OK)
                {
                    DataGridViewSelectedRowCollection selectedRows = f._selectedRows;
                    foreach (DataGridViewRow row in selectedRows)
                    {
                        int index = this.dataGridView1.Rows.Add();
                        for (int i = 0; i < row.Cells.Count; i++)
                        {
                            this.dataGridView1.Rows[index].Cells[i].Value = row.Cells[i].Value;
                        }
                    }
                }
            }   public Form3()
            {
                InitializeComponent();
            }
            public DataGridViewSelectedRowCollection _selectedRows;        private void Form3_Load(object sender, EventArgs e)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("A");
                dt.Columns.Add("B");
                dt.Columns.Add("C");
                dt.Columns.Add("D");
                dt.Columns.Add("E");
                for (int i = 0; i < 10; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr["A"] = "A" + i;
                    dr["B"] = "B" + i;
                    dr["C"] = "C" + i;
                    dr["D"] = "D" + i;
                    dr["E"] = "E" + i;
                    dt.Rows.Add(dr);
                }
                dataGridView1.AutoGenerateColumns = false;
                dataGridView1.DataSource = dt;
            }        private void btnAdd_Click(object sender, EventArgs e)
            {
                if (dataGridView1.SelectedRows.Count == 0)
                {
                    MessageBox.Show("请选择列表数据!");
                    return;
                }
                _selectedRows = dataGridView1.SelectedRows;
                this.DialogResult = DialogResult.OK;
            }        private void txtOrderCode_TextChanged(object sender, EventArgs e)
            {
                string orderCode=txtOrderCode.Text.Trim();
                foreach (DataGridViewRow dr in dataGridView1.Rows)
                {
                    dr.Selected = false;
                    if (dr.Cells["A"].Value.ToString() == orderCode)
                    {
                        dr.Selected = true;
                    }
                }
            }