dataGridView中的C#ArgumentOutOfRangeException
我在编程时遇到了这个错误,经过了一些调试和谷歌搜索过程,但是我找不到问题,我请求您的帮助dataGridView中的C#ArgumentOutOfRangeException,c#,winforms,exception,C#,Winforms,Exception,我在编程时遇到了这个错误,经过了一些调试和谷歌搜索过程,但是我找不到问题,我请求您的帮助 MessageBox.Show(dataGridView1.RowCount.ToString()); MessageBox.Show(dataGridView1.ColumnCount.ToString()); MessageBox.Show(dataGridView1.SelectedRows[1].Cells[5].Value.ToString());
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
表示您在dataGridView1
中拥有的所有行
因此,在您的情况下,尽管您的dataGridView1
有11行,但如果只选择了两行,则无法使用索引2
获得SelectedRows
如果将代码改为使用行
:
MessageBox.Show(dataGridView1.Rows[1].Cells[5].Value.ToString()); //This
然后你可以得到行
和单元格
中的值,索引分别高达行数-1
和列数-1
。那么,索引是零基的,这意味着如果你选择一行,实际选择的行的索引是0。在上面的代码中,您试图做的是引用选择中的“第二”行。如果只选择一行,则此操作将失败
Index Line Data field
0 1 Some more data
1 2 Bouncy Castle
选择了多少行,可能您只选择了索引为0的行谢谢您的回答!当时我只是引用了错误的值。我会在网站允许的5分钟内接受答案。再次感谢:)谢谢你的解释!我只是没有正确理解SelectedRows的价值。感谢您的关注,先生:)