The DataGridView.CellValidating event occurs when a cell loses input focus, enabling content validation.So, when you add a new value to the cell, the cellvalidating will not get the new value you've entered, but an old value. Because the new value hasn't been committed.
DataGridView.CellValueChanged: Occurs when a cell loses input focus, enabling content validation.
The DataGridView.CellValueChanged event occurs when the user-specified value is committed, which typically occurs when focus leaves the cell.
This event may get the new value when you leave to edit the current cell in your DataGridView. And it will not get an empty string if you enter some characters in the cell.