Это стандартное поведение для множественного выбора с использованием Ctrl . Почему вы нарушаете ожидаемый интерфейс пользователя? Вы могли бы взломать его, обнаружив изменения выбора (я посмотрю ...)
(редактировать) - да, похоже, работает, если вы подключите SelectionChanged
, что-то вроде:
DataGridViewRow[] lastSelectedRows = new DataGridViewRow[0];
void grid_SelectionChanged(object sender, System.EventArgs e) {
if ((Control.ModifierKeys & Keys.Control) == Keys.Control) {
foreach (DataGridViewRow row in lastSelectedRows) {
if (!row.Selected) row.Selected = true;
}
}
DataGridViewSelectedRowCollection selected = grid.SelectedRows;
lastSelectedRows = new DataGridViewRow[selected.Count];
selected.CopyTo(lastSelectedRows, 0);
}