datagridview 如何获取选中的行?
时间: 2024-09-28 22:10:55 浏览: 52
要从`DataGridView`中获取选中的行数据,可以采用以下方法:
1. **避免直接使用ToString()**[^1]:
如果直接使用`dataGridView1.Rows[e.RowIndex].Cells["txt"].Value.ToString()`可能会导致空值错误。为了避免这种情况,建议使用转换函数来安全地处理可能的null值:
```csharp
string selectedCellValue = Convert.ToString(dataGridView1.CurrentRow.Cells["txt"].Value);
```
2. **使用`CellClick`事件**[^2]:
如果你想在用户交互时即时获取选中行的数据,可以监听`CellClick`事件并获取相应行的值:
```csharp
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.IsRowSelected(e.RowIndex))
{
var selectedRow = dataGridView1.CurrentRow;
var values = new Dictionary<string, object>();
foreach (DataGridViewCell cell in selectedRow.Cells)
{
values.Add(cell.DataPropertyName, cell.Value);
}
// Do something with the selected row values here
}
}
```
这样,每次用户点击单元格时,都会获取到当前选中行的所有列及其对应的值。
阅读全文