【问题标题】:C# Windows Form - How to get previous/old value of cellC# Windows 窗体 - 如何获取单元格的先前/旧值
【发布时间】:2021-06-21 13:41:38
【问题描述】:

我有一个 Datagridview。我正在尝试获取旧值(编辑前的值)和新值,然后进行比较。

private void GridDetails_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    {
        if (e.ColumnIndex == GridDetails.Columns["Address"].Index)
        {
            var oldValue = GridDetails[e.ColumnIndex, e.RowIndex].Value;
            var newValue = GridDetails[e.ColumnIndex, e.RowIndex].EditedFormattedValue;

            if(oldValue!=newValue)
            {
                GridDetails.Rows[e.RowIndex].Cells["Address"].Style.BackColor = Color.FromArgb(212, 212, 155);
            }

        }
    }

但是新旧值都是一样的。

【问题讨论】:

  • @dr.null 仍然是旧值返回新值。
  • 否 如果您从 DataGridViewCellValidatingEventArgs arg 获取新值,则不会。保持oldValue 代码原样并按原样获取新值:var newValue = e.FormattedValue;。另外,列的类型是什么?也许您需要将值转换为正确的类型以进行比较。
  • var newValue = e.FormattedValue;我同意你的看法。此行返回新值。但是, var oldValue = GridDetails[e.ColumnIndex, e.RowIndex].Value;此代码行还返回新值。不是旧值。
  • 相关列的类型是什么?复选框,文本框,...等?您是否在代码中的某处提交了编辑?

标签: c# winforms datagridview


【解决方案1】:

您可以使用 DataGrid 的 CellBeginEdit 事件并将值存储在某处然后使用 CellEndEdit 将新值与旧值进行比较。

【讨论】:

  • 如果有效请点赞。这将对其他人有所帮助。
【解决方案2】:

查莫德,你是对的。我使用了 CellBeginEdit 和 CellEndEdit,它确实有效。以下是我的回答。

string oldValue;
private void GridDetails_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
        oldValue = GridDetails[e.ColumnIndex, e.RowIndex].Value.ToString();
}


private void GridDetails_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
    if (e.ColumnIndex == GridDetails.Columns["Address"].Index)
    {
       
        string newValue = e.FormattedValue.ToString();

        if(oldValue!=newValue)
        {
            GridDetails.Rows[e.RowIndex].Cells["Address"].Style.BackColor = Color.FromArgb(212, 212, 155);
        }

    }
}

【讨论】:

    猜你喜欢
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2019-10-26
    • 2019-09-30
    • 1970-01-01
    相关资源
    最近更新 更多