C# datagridview 在拖放值之前获取当前单元格值

C# datagridview get current cell value before Drag&Drop value

我有一个 dgv 和一个 richtextbox。用户可以 select 来自 rtb 的名称并拖动到 dgv 中的单元格。如果它们放入的当前单元格中没有值,我可以正常工作。但是,如果单元格有一个值并且它们在该单元格上删除了一个值,我将丢失以前的值。这是我的 DragDrop 代码

if (e.Data.GetDataPresent(typeof(System.String)))
        {
            Point clientPoint = gridViewRaces.PointToClient(new Point(e.X, e.Y));
            gridViewRaces.Rows[gridViewRaces.HitTest(clientPoint.X,
            clientPoint.Y).RowIndex].Cells[gridViewRaces.HitTest(clientPoint.X,
            clientPoint.Y).ColumnIndex].Value =
            (System.String)e.Data.GetData(typeof(System.String));
        }

在将值插入单元格之前,我希望能够检索当前值(如果存在的话)..

string currentValue = gridViewRaces.Rows[e.Y].Cells[e.X].Value.ToString();

任何帮助将不胜感激!!

经过几个小时的拔头发,我终于意识到我在整个 F*****G 时间里都找到了答案。

这是插入被拖动值的代码 -

if (e.Data.GetDataPresent(typeof(System.String)))
    {
        Point clientPoint = gridViewRaces.PointToClient(new Point(e.X, e.Y));
        gridViewRaces.Rows[gridViewRaces.HitTest(clientPoint.X,
        clientPoint.Y).RowIndex].Cells[gridViewRaces.HitTest(clientPoint.X,
        clientPoint.Y).ColumnIndex].Value =
        (System.String)e.Data.GetData(typeof(System.String));
    }

为了在插入新值之前获取之前的值,我所要做的就是这个

string previousValue = gridViewRaces.Rows[gridViewRaces.HitTest(clientPoint.X,
            clientPoint.Y).RowIndex].Cells[gridViewRaces.HitTest(clientPoint.X,
            clientPoint.Y).ColumnIndex].Value.ToString();

            gridViewRaces.Rows[gridViewRaces.HitTest(clientPoint.X,
            clientPoint.Y).RowIndex].Cells[gridViewRaces.HitTest(clientPoint.X,
            clientPoint.Y).ColumnIndex].Value =
            (System.String)e.Data.GetData(typeof(System.String));

希望这有时能对某人有所帮助。