我看到解释我需要的最简单方法是通过示例。
假设我有一个包含20行数据的DataGridView。 DGV的大小可以一次显示10行。它滚动显示第4-13行。选择第7行。我需要的是一种让Row7成为显示的第4行的方法。
答案 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一样疯狂的事情来停止显示它。