如何在DataGridView单元格中跟踪旧值?

4

我有一个datagridview,我想编辑其中的单元格值。但是当我编辑单元格值时,旧值就消失了。那么有没有一种方法可以跟踪或获取已编辑单元格的旧值呢?

谢谢。

2个回答

6

看一下CellValidating事件:

void dgv_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
    var oldValue = dgv[e.ColumnIndex, e.RowIndex].Value;
    var newValue = e.FormattedValue;
}

4

您还可以使用CellBeginEditCellEndEdit事件处理程序进行操作。将当前(旧)值保存到datagridview.Tag中。

void dgv_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
    //Save old value to datagridview.Tag
    dgv.Tag = dgv.CurrentCell.Value;
}

然后在CellEndEdit事件处理程序中:

void dgv_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    //Here you can use your old value from .Tag
    //For example compare is new value same as old
    if(dgv.Tag != dgv.CurrentCell.Value)
    {
        //Do your things with new value
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接