【datagridview选中整行】在使用 Windows 窗体应用程序开发时,`DataGridView` 是一个常用的控件,用于展示和编辑表格数据。但在默认情况下,`DataGridView` 的选择模式是单个单元格,用户可能需要选中整行进行操作,比如删除、复制或更新。
为了实现“选中整行”的功能,可以通过设置 `SelectionMode` 属性,并结合事件处理来实现更灵活的交互方式。
一、核心总结
| 问题 | 解决方案 |
| 如何让 DataGridView 选中整行? | 设置 `SelectionMode` 属性为 `FullRowSelect` |
| 如何获取当前选中的整行? | 使用 `SelectedRows` 集合遍历选中行 |
| 如何处理点击行时触发事件? | 使用 `CellClick` 或 `RowEnter` 事件 |
| 是否支持多选? | 可通过设置 `MultiSelect` 属性为 `true` 实现 |
二、详细说明
1. 设置选择模式
在 `DataGridView` 控件属性中,将 `SelectionMode` 设置为 `FullRowSelect`,这样用户在点击某一行时,会自动选中该行的所有单元格。
```csharp
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
```
2. 获取选中行
如果需要对选中的行进行操作(如删除),可以使用 `SelectedRows` 属性:
```csharp
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
// 对每一行执行操作
}
```
注意:`SelectedRows` 返回的是所有被选中的行,适用于多选场景。
3. 触发事件
- `CellClick`:当用户点击某个单元格时触发,可用于判断点击位置。
- `RowEnter`:当用户进入某一行时触发,适合用于高亮或初始化操作。
4. 多选支持
若希望用户可以按住 Ctrl 或 Shift 键进行多行选择,需将 `MultiSelect` 属性设置为 `true`:
```csharp
dataGridView1.MultiSelect = true;
```
三、注意事项
- 设置 `SelectionMode` 为 `FullRowSelect` 后,单击单元格不会单独选中它。
- 在某些版本的 .NET 中,`SelectedRows` 可能不包含隐藏行或空行,需额外处理。
- 如果使用自定义绑定源或数据绑定,确保数据与 UI 同步更新。
通过以上方法,你可以轻松实现 DataGridView 的整行选择功能,并根据需求扩展更多交互逻辑。


