Получить отображаемую позицию строки DataGridView - PullRequest
0 голосов
/ 07 октября 2009

Самый простой способ объяснить, что мне нужно, - это на примере.

Предположим, у меня есть DataGridView с 20 строками данных. Размер DGV соответствует 10 строкам одновременно. Прокручивается, чтобы показать строки 4-13. Ряд 7 выбран. Мне нужен способ, чтобы получить строку Row7, отображаемую 4-й строкой.

1 Ответ

1 голос
/ 07 октября 2009

Вы можете перебрать все DataGridViewRows в DGV и проверить свойство Displayed каждой строки. Когда вы обнаружите, что первое верно, это ваш первый отображаемый ряд. Продолжите цикл и проверку свойства строки 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.
       }
    }
}

В качестве бонуса вы можете проверить свойство Displayed 7-й строки, чтобы убедиться, что пользователь не делал ничего сумасшедшего, например, размер DGV, чтобы прекратить его отображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...