playerProfileID = (int)transfersDGV.SelectedRows[transfersDGV.CurrentRow.Index]
.Cells[0].Value;
我收到一条错误消息:“索引超出范围。必须是非负数且小于集合的大小。” 我试图从所选行中获取第一个单元格的值。我做错了什么?
答案 0 :(得分:2)
你想要使用
transfersDGV.SelectedRows[0].Cells[0].Value
SelectedRows
包含当前所选行的集合。如果选择1,则它包含该行。如果选择10,它将包含那些10.
您需要检查是否有任何行被选中和然后取第一个(或者您需要的任何一行)来获取第一个单元格的值。< / p>
CurrentRow
是当前具有焦点的行,可能是也可能不是所选行。
答案 1 :(得分:0)
SelectedRows包含所选行的数组。如果选择了2行,则其中的最大可访问索引将为1.您尝试通过CurrentRow.Index
属性访问它,该属性是整个网格中行的相对位置。所以你得到索引超出范围异常。如果你
想要
从所选行中选取第一个单元格的值
你应该使用
(int)transfersDGV.SelectedRows[0].Cells[0].Value;
答案 2 :(得分:0)
我不能肯定地说不知道你在代码中使用了什么类型...... transfersDGV
是某种迭代器吗?一旦迭代遍历整个集合,一些迭代器指向集合的结束或结束。另一种选择是它需要以某种方式进行初始化。 Cells
为空可能也会出现问题,在这种情况下,Cells[0]
实际上会导致异常。