有人知道如何取消选择 Windows 窗体 DataGridView 控件上的所有行吗?默认情况下,始终选择第一行...
另外,我不想让任何类型的选择,你们知道有什么方法吗?
我已经在这里搜索过但找不到...
任何帮助都会很棒!
编辑:
好的,我找到了另一种取消选择行的方法:在 DataGridViewRow.RowPostPaint()
事件中,使用 Selected
属性取消选择发送事件的行。
private void grid_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
this.gridLogEntries.Rows[e.RowIndex].Selected = false;
}
最佳答案
我认为没有像 DisableSelection = true
这样的简单解决方案。
无论如何,按以下方式处理 SelectionChanged
事件就足够了:
private bool skipEvents;
void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
if (skipEvents)
return;
skipEvents = true;
// disable cell selection
foreach (DataGridViewCell cell in this.dataGridView1.SelectedCells)
cell.Selected = false;
// disable row selection
foreach (DataGridViewRow row in this.dataGridView1.SelectedRows)
row.Selected = false;
// disable column selection
foreach (DataGridViewColumn col in this.dataGridView1.SelectedColumns)
col.Selected = false;
skipEvents = false;
}
编辑:
我稍微更改了代码以避免递归调用该方法。
关于c# - 取消选择 DataGridView 上的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3707890/