Отключить DataGridViewRow отменить выбор при нажатии CTRL - PullRequest
1 голос
/ 11 марта 2009

Если нажать клавишу CTRL и щелкнуть выбранный DataGridViewRow, строка не будет выделена. Как я могу это остановить?

1 Ответ

1 голос
/ 11 марта 2009

Это стандартное поведение для множественного выбора с использованием 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...