我在编程时遇到此错误,经历了一些调试,谷歌搜索过程,但是我找不到问题,因此寻求您的帮助!
MessageBox.Show(dataGridView1.RowCount.ToString());
MessageBox.Show(dataGridView1.ColumnCount.ToString());
MessageBox.Show(dataGridView1.SelectedRows[1].Cells[5].Value.ToString()); //This
根据我的研究,超出范围时会抛出ArgumentOutOfRangeException。
在上面的代码中,行数为11,列数为7。
但是我的第三行代码抛出ArgumentOutOfRangeException:
但是同样,当我为SelectedRows输入0而不是1时,它可以正常工作。其余的不起作用。
我觉得我做对了所有事情。有人可以帮这个初学者吗?谢谢您的阅读:)
最佳答案
原因是因为SelectedRows
与Rows
不同。 SelectedRows
是您选择的行,Rows
代表您在Rows
中拥有的所有dataGridView1
。
因此,在您的情况下,尽管您的dataGridView1
有11行,但是如果只选择了两行,则无法获得索引为SelectedRows
的2
。
如果将代码更改为改为使用Rows
:
MessageBox.Show(dataGridView1.Rows[1].Cells[5].Value.ToString()); //This
然后,您可以在
Rows
和Cells
中获得值,索引值分别高达RowCount - 1
和ColumnCount - 1
。