datagridview在开启允许用户增加行的属性的时候,比如现在datagridview共有4列,默认情况下是只要在第二列有输入的时候datagridview就自动增加新行了,现在客户要求新增的行能够自动复制上面一行前3列的值,这就需要只有在最后一列有输入的时候新增行,才能把上面一行前3列的值复制下来,请问这怎么实现啊?

解决方案 »

  1.   

    行?列? 没有看懂
    CellBeginEdit 事件里写点东西就可以吧
      

  2.   

    用这个事件:     
       private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
            {//获取列
               int a= e.ColumnIndex   然后判断 如果是最后一列就增加行 就行了。
            }
    OK,就是这样了。
      

  3.   

            private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
            {
                if(e.ColumnIndex==dataGridView1.Columns.Count-1  && e.RowIndex==dataGridView1.Rows.Count-1)  //控制行、列
                {
                    DataGridViewRow dgr = dataGridView1.CurrentRow;
                    for(int i=0;i<dataGridView1.Columns.Count-2;i++)   //控制前三列
                    {
                        dgr.Cells[i].Value = dataGridView1.Rows[e.RowIndex - 1].Cells[i].Value;
                    }
                }
            }
      

  4.   

    我觉得你们都没有看清我的需求,我现在是datagridview在开启允许用户增加行的属性的
      

  5.   

    建议你关闭【允许用户增加行】,这个会让dataGridView永久的在最末尾保留一个空白行。
    你可以放一个【追加】按钮等方式让用户往dataGridView里追加行