获取DataGridView行的显示位置

时间:2009-10-07 17:46:26

标签: c# datagridview

我看到解释我需要的最简单方法是通过示例。

假设我有一个包含20行数据的DataGridView。 DGV的大小可以一次显示10行。它滚动显示第4-13行。选择第7行。我需要的是一种让Row7成为显示的第4行的方法。

1 个答案:

答案 0 :(得分:1)

您可以遍历DGV中的所有DataGridViewRows并检查每个Row的Displayed属性。当你发现第一个是真的时,这是你第一次显示的那一行。继续循环并检查Row的Selected属性。

这是一些测试代码:

int foundRowIndex = 0;
bool foundFirstDisplayedRow = false;
foreach (DataGridViewRow row in dataGridView.Rows) {
    if (row.Displayed) {
        foundFirstDisplayedRow = true;
        Console.WriteLine(row.Cells[0].Value);
    }
    if (foundFirstDisplayedRow) {
       foundRowIndex++;
       if (row.Selected) {
          // You've got what you need here in foundRowIndex.
       }
    }
}

作为奖励,你可以检查第7行的显示属性,以确保用户没有做任何像DGV一样疯狂的事情来停止显示它。