Проблема индекса ячеек DataGridView

Хорошо, у меня проблема с моим приложением Windows. Мой DataGridView состоит из следующих столбцов: ProductName, Qty, Price, Subtotal. Итак, я предполагаю, что индексы ячеек для них соответственно следующие: 0, 1, 2, 3. Однако всякий раз, когда я пытаюсь выполнить код ниже:

txtSubtotalProducts.Text = "Php " + (Convert.ToDouble(dgvProducts.Rows[0].Cells[3].Value) + Convert.ToDouble(dgvExpenses.Rows[1].Cells[3].Value) + Convert.ToDouble(dgvExpenses.Rows[2].Cells[3].Value)).ToString();

Однако всякий раз, когда я запускаю этот блок кода, я сталкиваюсь с этим сообщением об ошибке: Index Out of Range.

Я что-то пропустил здесь? Заранее большое спасибо.

EDITED: Извините, индекс 4 на самом деле был тем, что я пробовал, но изначально я безуспешно пробовал как 2, так и 3 как индексы. Однако, когда я пробую 1 (столбец Кол-во), он работает отлично.


person Smiley    schedule 11.07.2010    source источник
comment
Вы заявляете, что ваши индексы ячеек от 0 до 3. Но вы добавляете ячейки [4]? Должны ли это быть ячейки[3]?   -  person Stephan Keller    schedule 11.07.2010
comment
Закончив редактирование. пожалуйста, смотрите мое редактирование. Благодарность :)   -  person Smiley    schedule 11.07.2010
comment
Можете ли вы опубликовать, как вы добавляете строки?   -  person SwDevMan81    schedule 11.07.2010


Ответы (1)


Степан прав! Если у вас есть ProductName, Qty, Price, Subtotal, это 4 столбца.

Так как массивы основаны на 0, возможные столбцы, к которым вы можете получить доступ, это 0,1,2 и 3.

Итак, когда вы пытаетесь получить доступ

dgvExpenses.Rows[1].Cells[4].Value

Поскольку 5-го столбца (4-го индекса) нет, он выдаст исключение Index Out of Range :)

person Ranhiru Jude Cooray    schedule 11.07.2010
comment
Я был таким глупым. Ошибка, с которой я сталкиваюсь, была вызвана тем, что я обращался к неправильному представлению сетки. Я должен получить доступ к dgvProducts, но я также обращался к расходам, которые имеют только 2 столбца. Спасибо, парни. :D - person Smiley; 11.07.2010