禁用按下CTRL时选择的DataGridView行

时间:2009-03-11 11:02:26

标签: c# datagridview

如果按下 CTRL 键并单击选定的DataGridView行,则选择该行。我怎么能阻止这个?

1 个答案:

答案 0 :(得分:1)

这是使用 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);
}