我在编程时遇到此错误,经历了一些调试,谷歌搜索过程,但是我找不到问题,因此寻求您的帮助!

        MessageBox.Show(dataGridView1.RowCount.ToString());
        MessageBox.Show(dataGridView1.ColumnCount.ToString());
        MessageBox.Show(dataGridView1.SelectedRows[1].Cells[5].Value.ToString()); //This


根据我的研究,超出范围时会抛出ArgumentOutOfRangeException。

在上面的代码中,行数为11,列数为7。

但是我的第三行代码抛出ArgumentOutOfRangeException:
c# - dataGridView中的C#ArgumentOutOfRangeException-LMLPHP

但是同样,当我为SelectedRows输入0而不是1时,它可以正常工作。其余的不起作用。

我觉得我做对了所有事情。有人可以帮这个初学者吗?谢谢您的阅读:)

最佳答案

原因是因为SelectedRowsRows不同。 SelectedRows是您选择的行,Rows代表您在Rows中拥有的所有dataGridView1

因此,在您的情况下,尽管您的dataGridView1有11行,但是如果只选择了两行,则无法获得索引为SelectedRows2

如果将代码更改为改为使用Rows

MessageBox.Show(dataGridView1.Rows[1].Cells[5].Value.ToString()); //This


然后,您可以在RowsCells中获得值,索引值分别高达RowCount - 1ColumnCount - 1

10-07 13:10