我现在又两个datagridview 然后我想要点击第一个datagridview中的一个单元格的数据,把它显示到第二个datagridview中,请高手指教,最好能给我个小例子谢谢

解决方案 »

  1.   

    看datagridview 有个选择行事件    点事件   把ID传给第2个datagridview  然后绑定代码有点多,所以你按我这个思路尝试着做做
      

  2.   

    得到选中行,返回的是一个行的对象,然后把这一行添加到第二个gridview中
    dataTable dt=grid.datasorcse as dataTable;
    dataRow r=dt.newRow();
    r[]=选中行的对象[];
    r[]=
    ...
    grid.datasorcse=dt;
      

  3.   

    跟新第二个DataGridView的数据源
    DataBind事件
      

  4.   

    if (dataGridView2.CurrentRow == null) return;
                DataGridViewRow dgv2 = dataGridView2.CurrentRow;
                if (dataGridView1.CurrentRow == null) return;
                DataGridViewRow dgv = dataGridView1.CurrentRow;
                int rowIndexNew = dgv.Index;
                string dgv2Text = dgv2.Cells[0].Value.ToString().Trim();
               for (int i = 0; i < dataGridView1.RowCount; i++)
               {
                   DataGridViewRow dgv1 = dataGridView1.Rows[i];
                   int rowIndexOld = dgv1.Index;
                   string dgv1Text = dgv1.Cells[0].Value.ToString().Trim();
                   if (dgv1Text == dgv2Text)
                   {
                       if (rowIndexNew == 0)
                       {
                           dgv1.Cells[1].Value = Convert.ToInt32(dataGridView1.Rows[0].Cells[1].Value) + 10;
                          
                       }
                       else
                       {
                           int scoreUp =Convert.ToInt32(dataGridView1.Rows[rowIndexNew - 1].Cells[1].Value);
                           int scoreDown = Convert.ToInt32(dataGridView1.Rows[rowIndexNew].Cells[1].Value);
                           Convert.ToInt32(dgv1.Cells[1].Value);
                           dgv1.Cells[1].Value = (scoreUp + scoreDown) / 2;
                       }
                       //开始移动数据
                                   var tempRow = dt.NewRow();
                                   tempRow.ItemArray = dt.Rows[rowIndexOld].ItemArray;
                                   dt.Rows.RemoveAt(rowIndexOld);
                                   dt.Rows.InsertAt(tempRow, rowIndexNew);
                                   for (int k = dataGridView1.Rows.Count - 1; k >= 0; k--)
                                   {
                                       dataGridView2.Rows[dataGridView1.Rows.Count - 1-k].Cells[0].Value = dataGridView1.Rows[k].Cells[0].Value;
                                       dataGridView2.Rows[dataGridView1.Rows.Count - 1-k].Cells[1].Value = dataGridView1.Rows[k].Cells[1].Value;
                                   }
                                       break;
                                      
                               }
                           }