我有一个datagridview,我想编辑其中的单元格值。但是当我编辑单元格值时,旧值就消失了。那么有没有一种方法可以跟踪或获取已编辑单元格的旧值呢?
谢谢。
我有一个datagridview,我想编辑其中的单元格值。但是当我编辑单元格值时,旧值就消失了。那么有没有一种方法可以跟踪或获取已编辑单元格的旧值呢?
谢谢。
看一下CellValidating事件:
void dgv_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
var oldValue = dgv[e.ColumnIndex, e.RowIndex].Value;
var newValue = e.FormattedValue;
}
您还可以使用CellBeginEdit
和CellEndEdit
事件处理程序进行操作。将当前(旧)值保存到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
}
}