Как удалить ошибку "значение должно быть неотрицательным"?
Привет,
У меня возникла проблема с событием DataGridView1_CellClick. Всякий раз, когда я нажимаю на какой-либо столбец(ячейку), Я получаю сообщение об ошибке
Index was out of range. Must be non-negative and less than the size of the collection parameter name:index.
Ошибка находится в самой первой строке:
if (Convert.ToString(DataGridView1.Rows[e.RowIndex].Cells[6].Value) != "")
Пожалуйста помочь.
С уважением
Аман Чаурасия
Что я уже пробовал:
try { if (Convert.ToString(DataGridView1.Rows[e.RowIndex].Cells[6].Value) != "") { if (ZonesItems == null) { if (PictureBox1.Image == null) { DrawZonesFromDgv(Convert.ToString(DataGridView1.Rows[e.RowIndex].Cells[6].Value)); } else { DrawZonesFromDgv(); } if (ZonesItems.Count > 0) { foreach (var Zone in ZonesItems) { if (Zone.ZoneNo == Convert.ToInt32(DataGridView1.Rows[e.RowIndex].Cells[6].Value)) { Zone.Clicked = true; } else { Zone.Clicked = false; } } } } else { if (ZonesItems.Count > 0) { foreach (var Zone in ZonesItems) { if (Zone.ZoneNo == Convert.ToInt32(DataGridView1.Rows[e.RowIndex].Cells[6].Value)) { Zone.Clicked = true; } else { Zone.Clicked = false; } } } } PictureBox1.Invalidate(); } if (e.ColumnIndex == 3 || e.ColumnIndex == 4) { RichTextBox2.Text = Convert.ToString(DataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value); DatagridRowClicked = e.RowIndex; DatagridColClicked = e.ColumnIndex; } } catch(Exception ex) { MessageBox.Show(ex.Message); }
Richard MacCutchan
Это означает, что либо значение индекса строки (RowIndex), либо столбец (6) являются недопустимыми. Используйте свой отладчик, чтобы выяснить, какой именно.