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

本文关键字:索引 范围 异常 datagridview 选择 | 更新日期: 2023-09-27 18:14:47

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

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

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

MSDN在文档中提到了RowIndex属性

当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);
    }
}