Why do i get this error(Index was out of range. Must be non-negative and less than the size of the collection.)?
Code :
object value = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex ].Value;
object minus = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Value;
object delte = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 2].Value;
if (value is DBNull || minus is DBNull || delte is DBNull) { return; }
else if (value.Equals("+"))
{
produseTableAdapter.PlusCantitate(DateTime.Now, dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex -5].Value.ToString());
FillData();
dataGridView1.Rows[e.RowIndex].Selected = true;
}
else if (minus.Equals("-"))
{
produseTableAdapter.MinusCantitate(DateTime.Now, dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex - 5].Value.ToString());
FillData();
dataGridView1.Rows[e.RowIndex].Selected = true;
}
else if (delte.Equals("Delete"))
{
if (MessageBox.Show("Really ?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
{
produseTableAdapter.DeleteQuery(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex - 5].Value.ToString());
FillData();
dataGridView1.Rows[e.RowIndex].Selected = true;
}
else { return; }
}
The problem is with the Cells[e.ColumnIndex + 1] && Cells[e.ColumnIndex + 2].
Next cell from object value is another button and next after this is another button. How can i get the indexes of this buttons ?
One of your Rows[] or Cells[] references must be beyond the range of your actual data. Make sure your row and column indexing, especially in cases where you subtract or add constants, are within the bounds of your data.