 <p>The MSDN says in the docs about <a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcell.rowindex(v=vs.110).aspx" rel="nofollow">RowIndex property</a></p> <blockquote> <p>When the RowIndex property returns -1, the cell is either a column header, or the cell's row is shared.</p> </blockquote> <p>So you need to handle the e.RowIndex == -1 when you receive the event<br> (...The index must not be negative....)</p> <pre><code>private void firearmView_CellClick(object sender, DataGridViewCellEventArgs e) { if(e.RowIndex == -1) return; if (!firearmView.Rows[e.RowIndex].IsNewRow) { selectedFirearmPictureBox.Image = Image.FromFile(firearmView.Rows[e.RowIndex].Cells[12].Value.ToString(), true); } } </code></pre>