I just solved the problem by setting the current cell to null.
foreach (DataGridViewCell cell in dataGridView1.SelectedCells)
cell.Selected = false;
dataGridView1.CurrentCell = null;
I have other issue now.
I have some code in the CellBeginEdit, which I don't want to fire if a column header is clicked.
Any specific condition that can be checked for?