【发布时间】:2014-01-14 07:30:41
【问题描述】:
我有一个 datgridview,我想在该 datagridview 上编辑单元格的值。但是当我编辑一个单元格值时,旧值消失了。那么有没有办法跟踪或获取该编辑单元格的旧值?
谢谢
【问题讨论】:
标签: c# winforms datagridview
我有一个 datgridview,我想在该 datagridview 上编辑单元格的值。但是当我编辑一个单元格值时,旧值消失了。那么有没有办法跟踪或获取该编辑单元格的旧值?
谢谢
【问题讨论】:
标签: c# winforms 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
}
}
【讨论】: