首页 > 解决方案 > 检查选择跨越多少行 DataGridView

问题描述

DataGridView.SelectedRows

似乎只计算完全选中的行。

如果我从例如单列中选择多个单元格,DataGridView.SelectedRows似乎总是返回 0(如果有多个列)。

如何获取用户选择跨越的行数?

标签: c#winformsdatagridview

解决方案


我想你必须唯一地计算它们:

HashSet<int> rowIndexes = new HashSet<int>();
foreach (DataGridViewCell cell in dgv.SelectedCells) {
  if (!rowIndexes.Contains(cell.RowIndex)) {
    rowIndexes.Add(cell.RowIndex);
  }
}

selectedRowCount = rowIndexes.Count;

推荐阅读