如何根据DatagridView中的选定单元格获取行集合

时间:2012-01-19 06:19:15

标签: c# winforms datagridview selection

我在Windows窗体上有一个DatagridView控件。它的selectionMode属性设置为CellSelect。
我想基于选定的单元格操作DatagridViewRow。 DataGridView控件绑定到DataSource。

如何根据选定的单元格获取Row集合?

3 个答案:

答案 0 :(得分:6)

Linq提供的答案与提供的语法不兼容。 Datagridview不支持可数,因此您必须使用:

        IEnumerable<DataGridViewRow> selectedRows = dgPOPLines.SelectedCells.Cast<DataGridViewCell>()
                                           .Select(cell => cell.OwningRow)
                                           .Distinct();

答案 1 :(得分:5)

DataGridView.SelectedCells将为您提供所选单元格的列表。该集合中的每个DataGridViewCell实例都有一个OwningRow,这允许您构建自己的行集合。

例如:

using System.Linq;

IEnumerable<DataGridViewRow> selectedRows = dgv.SelectedCells
                                               .Select(cell => cell.OwningRow)
                                               .Distinct();

答案 2 :(得分:1)

List<DataGridViewRow> rowCollection = new List<DataGridViewRow>();

foreach(DataGridViewCell cell in dataGridView.SelectedCells)
{
    rowCollection.Add(dataGridView.Rows[cell.RowIndex];
}