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

Chu*_*bur 7 c# user-interface datagridview

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

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

FirstDisplayedScrollingRowIndex似乎没有LastDisplayedScrollingRowIndex伴侣.

有任何想法吗?谢谢.

Chu*_*bur 9

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

找到了.DisplayedRowCount:

if (dataGridView.FirstDisplayedScrollingRowIndex + dataGridView.DisplayedRowCount(false) <= selectedRowIndex)
{
    dataGridView.FirstDisplayedScrollingRowIndex =
        selectedRowIndex - dataGridView.DisplayedRowCount(false) + 1;
}
Run Code Online (Sandbox Code Playgroud)

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


Met*_*ght 5

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

var displayedRows = myDataGridView.DisplayedRowCount(false);
Run Code Online (Sandbox Code Playgroud)