我有一个datagridview,当我点击标题进行排序或出于任何原因我在下面的代码行中得到了跟随错误....
参数我们的范围异常(索引超出范围。必须是非负数且小于集合的大小。
private void firearmView_CellClick(object sender, DataGridViewCellEventArgs e)
{
//I get the above error on the IF line below.
if (!firearmView.Rows[e.RowIndex].IsNewRow)
{
selectedFirearmPictureBox.Image = Image.FromFile(firearmView.Rows[e.RowIndex].Cells[12].Value.ToString(), true);
}
}
我不知道为什么我在这里遇到这个特殊错误。
答案 0 :(得分:0)
MSDN在关于RowIndex property
的文档中说当RowIndex属性返回-1时,单元格是一列 标题,或单元格的行是共享的。
所以当你收到事件时你需要处理e.RowIndex == -1 (...指数不得为负数......)
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);
}
}