У меня была похожая проблема (но я не использую событие SelectionChanged), и это работает для меня:
В конструкторе после установки привязки добавьте обработчик к событию DataBindingComplete:
dgvCommandos.DataSource = systeemCommandos; // = my List<> of objects
dgvCommandos.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(dgvCommandos_DataBindingComplete);
Обработчик:
void dgvCommandos_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
dgvCommandos.ClearSelection();
}
Если вы намереваетесь выбрать строку (например, после добавления / вставки нового объекта), просто установите:
dgvCommandos.Rows[insertPos].Selected = true;
Используя это в качестве основы, я думаю, что можно обрабатывать другие события, чтобы реагировать на выбор пользователя. Надеюсь, это поможет.