Если я выбираю более одной ячейки в DataGridView, как я могу получить (в MsgBox) значение ячейки с наивысшим ColumnIndex (среди выбранного)
Один из способов сделать это использовать linq для заказа коллекции выбранных ячеек ColumnIndex, а затем получить первый.
var selectedCells =dgvC.SelectedCells;
var MaxColumn = (from DataGridViewCell cell in selectedCells
orderby cell.ColumnIndex descending
select cell).FirstOrDefault();
MessageBox.Show(MaxColumn.Value.ToString());
Следует отметить, что в зависимости от того, как пользователь сделал выбор (сверху вниз или снизу вверх) вы либо получить значение из первой строки или последней строки. Если это имеет значение, вы также должны заказать RowIndex
Другой способ - проверить первую и последнюю ячейки в коллекции и сравнить индексы. Нам нужно посмотреть на них, потому что в зависимости от того, как пользователь сделал выбор, изменится тот, у кого больше индекс столбца.
var selectedCells = dgvc.SelectedCells;
var cellStart = selectedCells[0];
var cellEnd = selectedCells[selectedCells.Count -1];
if (cellStart.ColumnIndex > cellEnd .ColumnIndex)
MessageBox.Show(cellStart.Value.ToString());
else
MessageBox(cellEnd.Value.ToString());
Примечание: вы должны проверить нулевые значения, если AllowUsersToAddRow верно
Сво http://WhatHaveYouTried.com? что такое режим выбора на DGV? –
Мне нужно заполнить ячейки списком, но только ячейки, которые не выбраны, и от первого не выбранного до конца строки. – Bonaca
, пожалуйста, покажите нам код, который у вас есть, спасибо. –