如果按下 CTRL 键并单击选定的DataGridView行,则选择该行。我怎么能阻止这个?
答案 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);
}