0

我希望能够通过在我的 DGV 的 DefaultValuesNeeded() 事件中执行以下操作来将前一行中的值复制到新行中:

private void dataGridViewPlatypi_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs args)
{
    dataGridViewRow dgvr = args.PreviousRow;
    args.Row.Cells[1].Value = dgvr.Cells[1].Value;
    args.Row.Cells[2].Value = dgvr.Cells[2].Value;
    args.Row.Cells[3].Value = dgvr.Cells[3].Value;
    args.Row.Cells[4].Value = dgvr.Cells[4].Value;;
    args.Row.Cells[5].Value = dgvr.Cells[5].Value;
}

...但是,我不知道是否可以以编程方式推断前一行(我一厢情愿地认为上面没有 args 的“PreviousRow”属性)。

4

1 回答 1

0

这并不能完全回答我提出的问题,因为它一次只复制一个单元格,而不是整个行,但它确实适合我的目的(从单元格复制到第一行的左侧,然后从单元格此后):

这有效:

private void dataGridViewPlatypi_CellEnter(object sender,   DataGridViewCellEventArgs args)
{
    string prevVal = string.Empty;
    if (args.RowIndex > 0)
    {
        prevVal = dataGridViewPlatypi.Rows[args.RowIndex - 1].Cells[args.ColumnIndex].Value.ToString();
    } else if (args.ColumnIndex > 1)
    {
        prevVal = dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex-1].Value.ToString();
    }
    dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex].Value = prevVal;
}
于 2012-09-24T22:44:17.673 回答