Как разместить DataGridView в определенной строке (чтобы выбранная строка находилась внизу)? - PullRequest
7 голосов
/ 20 июля 2009

Поскольку вопрос похож на этот вопрос , у меня также есть приложение с DataGridView. Я хотел бы расположить строки так, чтобы конкретная строка находилась внизу видимой части списка.

Это в ответ на нажатие кнопки, которая перемещает строку вниз на единицу. Я хочу сохранить выделение в строке, в которой я двигаюсь (эта часть уже работает). Если строк много, выбранная строка может переместиться ниже видимой области. Я хочу прокрутить вниз, пока он не окажется внизу видимой области.

Похоже, что LastDisplayedScrollingRowIndex не является компаньоном FirstDisplayedScrollingRowIndex.

Есть идеи? Спасибо.

Ответы [ 2 ]

9 голосов
/ 20 июля 2009

Как я догадываюсь, я думаю, что мне нужно использовать FirstDisplayedScrollingRowIndex и количество строк, видимых в DataGridView, для вычисления нового FirstDisplayedScrollingRowIndex. Может быть, мне просто нужно выяснить, как называется свойство NumberOfVisibleRows?

Нашел это. DisplayedRowCount:

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

Код проверен и работает в моем собственном проекте.

5 голосов
/ 20 июля 2009

Метод DisplayedRowCount сообщит вам, сколько строк отображается на экране. Установите значение параметра true , чтобы включить частичные строки.

var displayedRows = myDataGridView.DisplayedRowCount(false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...