【问题标题】:How do I track the old value in a datagridview cell?如何跟踪 datagridview 单元格中的旧值?
【发布时间】:2014-01-14 07:30:41
【问题描述】:

我有一个 datgridview,我想在该 datagridview 上编辑单元格的值。但是当我编辑一个单元格值时,旧值消失了。那么有没有办法跟踪或获取该编辑单元格的旧值?

谢谢

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    看看 CellValidating 事件:

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

    【讨论】:

      【解决方案2】:

      您还可以使用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
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多