2009-10-03 3 views
1

Мне интересно, что такое порядок ячеек в DataGridView.SelectedCells? Я предположил, что SelectedCells [0] должен вернуть первую ячейку (верхний левый) и SelectedCells [Count-1] последним (в нижнем правом углу), но, как ни странно, со следующей четырьмя ячейками сеткиЗаказ ячейки в DataGridView.SelectedCells?

[1] [2]
[3] [4]

когда я выбираю эти клетки и попытаться получить значения ячеек со следующим кодом

for (int i = 0; i < gridView.SelectedCells.Count; i++) 
    MessageBox.Show(gridView.SelectedCells[i].Value.ToString()); 

он отображает значения в неправильном порядке, как показано ниже

Я что-то не хватает? Есть ли какое-то свойство DataGridView, которое задает порядок выбранных ячеек? Обратите внимание, что я выбираю ячейки, перетаскивая курсор из ячейки верхнего левого (со значением 1) в нижнюю правую ячейку (со значением 4).

ответ

1
var ordered = gridView.SelectedCells.OrderBy(c=>c.Index) 

немного LINQ на помощь :-) Это отсортирует ваши ячейки по индексу в порядке возрастания.

0

IIRC SelectedRows также идет в обратном направлении.

Смежные вопросы