Задайте свойству ReadOnly для DataGridView значение true или false, в зависимости от того, была ли выбрана одна или несколько строк или изменилось ли CellState в DGV.
Добавьте следующие два события для вашего DataGridView:
private void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e) {
if (e.StateChanged == DataGridViewElementStates.Selected) {
Console.WriteLine("TRUE");
dataGridView1.ReadOnly = true;
}
}
private void dataGridView1_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e) {
if (e.StateChanged == DataGridViewElementStates.Selected) {
Console.WriteLine("false");
dataGridView1.ReadOnly = false;
}
}
Это сработало для меня в моих тестах, но я не удивлюсь, если бы были скрытые "ошибки".