У меня есть проблема с установкой последней строки в моем выбранном datagridview. Я выбираю последнюю строку таким образом:DatagridView Выберите последнюю строку
if (grid.Rows.Count > 0)
{
try
{
grid.Rows[grid.Rows.Count - 1].Selected = true;
grid.CurrentCell = grid.Rows[grid.Rows.Count - 1].Cells[1]
}
catch (IndexOutOfRangeException)
{ }
catch (ArgumentOutOfRangeException)
{ }
}
Когда я выполняю этот код я получаю исключение: IndexOutOfRangeException occurred
: Index-1 не имеет значения.
Когда я отлаживаю коллекцию Rows
и соответствующую коллекцию Cells
, я вижу, что обе коллекции заполнены. Индекс также существует в коллекции Rows and Cells.
У меня нет понятия, что я делаю неправильно здесь. Кто-то, кто может помочь мне здесь? Thnx
EDIT:
Вот полный исключение:
System.IndexOutOfRangeException: Index -1 does not have a value.
at System.Windows.Forms.CurrencyManager.get_Item(Int32 index)
at System.Windows.Forms.CurrencyManager.get_Current()
at System.Windows.Forms.DataGridView.DataGridViewDataConnection.OnRowEnter(DataGridViewCellEventArgs e)
at System.Windows.Forms.DataGridView.OnRowEnter(DataGridViewCell& dataGridViewCell, Int32 columnIndex, Int32 rowIndex, Boolean canCreateNewRow, Boolean validationFailureOccurred)
at System.Windows.Forms.DataGridView.SetCurrentCellAddressCore(Int32 columnIndex, Int32 rowIndex, Boolean setAnchorCellAddress, Boolean validateCurrentCell, Boolean throughMouseClick)
at System.Windows.Forms.DataGridView.set_CurrentCell(DataGridViewCell value)
код кажется нормально. Вы пробовали отлаживать его? На какой строке кода вы получаете ошибку? –
Попробуйте ** Быстрый просмотр ** для 'grid.Rows [grid.Rows.Count - 1] .Cells [1]' и посмотреть, что он возвращает. –
@Aseem: строка: 'grid.CurrentCell = grid.Rows [grid.Rows.Count - 1] .Cells [1]' – Martijn