DataGridView是Windows Forms中的一个强大控件,用于显示和编辑表格数据。它允许用户选择单行、多行或单元格,并提供多种选择模式。
在C#中,有几种方法可以取消选择DataGridView中的所有选定行:
dataGridView1.ClearSelection();
这是最简单直接的方法,它会取消所有当前选中的行和单元格。
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
row.Selected = false;
}
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.CurrentCell = null;
ClearSelection()
比遍历所有行更高效。SelectionMode
设置为CellSelect
,ClearSelection()
只会取消选中的单元格FullRowSelect
或FullColumnSelect
,会取消整行或整列的选择SelectionChanged
事件。private void btnClearSelection_Click(object sender, EventArgs e)
{
// 方法1:最简单的方式
dataGridView1.ClearSelection();
// 方法2:如果需要额外处理
// foreach (DataGridViewRow row in dataGridView1.SelectedRows)
// {
// row.Selected = false;
// }
// 方法3:通过设置当前单元格
// dataGridView1.CurrentCell = null;
}
Q: 为什么ClearSelection()后看起来还有行被选中?
A: 这可能是因为CurrentRow
仍然存在(有焦点边框)。要完全清除视觉上的选中状态,可以同时设置:
dataGridView1.ClearSelection();
dataGridView1.CurrentCell = null;
Q: 如何防止用户重新选择?
A: 可以临时设置Enabled = false
,但更好的方式是设置ReadOnly = true
或调整选择模式。
没有搜到相关的文章