Ответ 1
Это прямо из google:
В DataGridView выбранная строка и текущая строка (обозначенная стрелка в заголовке строки) может быть не той же строки. Кроме того, мы могли бы выберите несколько строк в DataGridView, но текущая строка может быть только одной ряд. Когда свойство SelectionMode для DataGridView установлено на FullRowSelect, текущая строка будет всегда выбрана. Если вы хотите изменить текущую строку в элементе управления DataGridView, вы можете установите свойство CurrentCell
dataGridView1.CurrentCell = dataGridView1.Rows[1].Cells[0];
Если вы хотите просто изменить выбранную строку, вы можете установить Selected свойство строки, которую вы хотите присвоить true.
dataGridView1.CurrentRow.Selected = false;
dataGridView1.Rows[1].Selected = true;