选择标题时,在datagridview中索引超出范围的异常

时间:2014-07-24 22:54:41

标签: c# datagridview

我有一个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);
            }

    }

我不知道为什么我在这里遇到这个特殊错误。

1 个答案:

答案 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);
    }
}