ошибка индекса для установки значения ячейки datagridview - PullRequest
0 голосов
/ 26 февраля 2012

Я получаю разочаровывающую ошибку, которая, я уверен, что-то простое, но я не могу понять, что.

Вот моя функция:

public void setDistanceCellValue(int value, int row, int column)
{
    try
    {
        Console.WriteLine("Row: " + row + " Column: " + column + " Value: " + value);
                logGrid.Rows[row].Cells[column].Value = value.ToString();
    }
    catch (Exception ex)
    {
            MessageBox.Show(string.Format("An error occurred: {0}" + "\r\n" + "\r\n" + "Row: " + row + " Column: " + column + " Value: " + value, ex.Message));
    }
}

Где строка установки значения logGrid - это то, что выдает ошибку с «Индекс выходит за пределы диапазона. Должен быть неотрицательным и меньше, чемразмер коллекции. Имя параметра: index. "

Я проверял и проверял, и моя сетка имеет шесть строк и 8 столбцов, и функция вызывается, скажем, в строке 2 столбца 3 (отсюда и всекод отладки).Я не могу понять, почему я говорю, что я использую отрицательный индекс или индекс больше 5 для e.rowIndex или 7 для e.columnIndex.

Помогите мне, если выможет.

1 Ответ

1 голос
/ 26 февраля 2012

Индексы варьируются от 0 до N-1 , а не от 1 до N .


РЕДАКТИРОВАТЬ:

Два предложения

  1. Добавьте дополнительный код отладки перед существующим Console.WriteLine
   Console.WriteLine("Row Count: {0}", logGrid.Rows.Count);
   Console.WriteLine("Cell Count: {0}", logGrid.Rows[row].Cells.Count);
  1. Проверьте свойство AutoGenerateColumns, чтобы увидеть, установлено ли оно так, как вы ожидали.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...