Как получить индекс последней выбранной строки из выбора строк в DataGridView - PullRequest
4 голосов
/ 25 мая 2011

У меня есть DataGridView, и когда я выбираю несколько строк, я хочу индекс последней выбранной строки.Другими словами, как получить максимальный максимальный индекс из выбора строк.

Например, если я выберу row0, row1 и row6, я хочу выводить как "6".

С уважением.

Ответы [ 3 ]

4 голосов
/ 25 мая 2011
if (dataGridView1.SelectedRows.Count > 0)
{
    int lastIndex = dataGridView1.SelectedRows[dataGridView1.SelectedRows.Count - 1].Index;
}
3 голосов
/ 25 мая 2011
var x = dataGridView1.SelectedRows.Cast<DataGridViewRow>().Max(row => row.Index);

- это то же самое, что и

var y = dataGridView1.SelectedRows.Cast<DataGridViewRow>().Last().Index;
2 голосов
/ 26 мая 2011

Извините, я добавляю ответ для себя.Могут быть и другие более быстрые способы, но это работает.

            List<int> lst = new List<int>();
            foreach (DataGridViewRow row in dg.SelectedRows)
                lst.Add(row.Index);

            lst.Sort();
            int i = lst[lst.Count - 1];

Для этого нужно добавить индексы всех выбранных строк в List<>, а затем выполнить сортировку и затем передать последний элемент из отсортированногоList<>.

Примечание: проблема метода Bala R заключается в том, что он зависит от порядка выбора строк (т. Е. От того, где находится выбранный указатель).Сбой, когда выбранные строки не в порядке.Это дает строку, которая была выбрана последней, не обязательно максимальный максимальный индекс из выбора строк ..

Спасибо всем!

...