如何将DataGridView定位到特定行(以便所选行位于底部)?

时间:2009-07-20 19:22:36

标签: c# datagridview user-interface

作为类似于this question的问题,我还有一个带有DataGridView的应用程序。我想定位行,使特定行位于列表可见部分的底部。

这是对按钮单击的响应,将行向下移动一行。我想保持我正在移动的行上的选择(我已经有了这个部分工作)。如果有很多行,则所选行可能会移动到可见区域下方。我想向下滚动,直到它位于可见区域的底部。

FirstDisplayedScrollingRowIndex似乎没有LastDisplayedScrollingRowIndex伴侣。

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:9)

正如我自己的猜测,我认为我需要使用FirstDisplayedScrollingRowIndex和DataGridView中可见的行数来计算新的FirstDisplayedScrollingRowIndex。也许我只需要找出NumberOfVisibleRows属性被调用的内容?

找到它。 DisplayedRowCount:

if (dataGridView.FirstDisplayedScrollingRowIndex + dataGridView.DisplayedRowCount(false) <= selectedRowIndex)
{
    dataGridView.FirstDisplayedScrollingRowIndex =
        selectedRowIndex - dataGridView.DisplayedRowCount(false) + 1;
}

代码测试并在我自己的项目中工作。

答案 1 :(得分:5)

DisplayedRowCount方法将告诉您屏幕上显示的行数。将参数值设置为 true 以包含部分行。

var displayedRows = myDataGridView.DisplayedRowCount(false);