Через несколько часов, потянув меня за волосы, я наконец понял, что у меня есть ответ весь 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));
надеюсь, что это когда-нибудь кому-нибудь поможет.