Как я догадываюсь, я думаю, что мне нужно использовать FirstDisplayedScrollingRowIndex и количество строк, видимых в DataGridView, для вычисления нового FirstDisplayedScrollingRowIndex. Может быть, мне просто нужно выяснить, как называется свойство NumberOfVisibleRows?
Нашел это. DisplayedRowCount:
if (dataGridView.FirstDisplayedScrollingRowIndex + dataGridView.DisplayedRowCount(false) <= selectedRowIndex)
{
dataGridView.FirstDisplayedScrollingRowIndex =
selectedRowIndex - dataGridView.DisplayedRowCount(false) + 1;
}
Код проверен и работает в моем собственном проекте.