//更新dataGridView中的数据
public void updateDGV(string[] showinfo)
{
for (int j = 0; j < showinfo.Length; j++)
{
dataGridView.SelectedRows[h].SetValues(showinfo[j]);
}
}
上面一段代码是要将传进来的一个数组中的值,更新到选中的行中。代码中的变量h是前面取到的选中行的索引。下面将异常截图贴出来:
看来是索引有问题,可是这事第一次循环的时候爆出的异常,这时变量j等于0啊。并且数组中肯定是有数据的,截图如下:
高手赐教,如何解决这个问题,谢谢!
GridView的selectdRows默认是0,你是否有选中?
你要判断selectdRows这个属性为0的情况!
当j>h时dataGridView.SelectedRows[h]自然就越界了,所以要先判断j,h的大小,从而保证循环的时候dataGridView.SelectedRows[h]不会越界。
取掉For循环,直接写
dataGridveiw.SelectedRows[h].SetValues(showinfo)
这样试试,应该没错
改为
j<showInfo.Length-1
SelectedRows是你选中行的集合,看你代码的意思,应该是只选中了1行,那么索引就应该是0,即SelectedRows[0]。
你的h是选中的行在DataGridView中的索引,用到SelectedRows里面当然会报索引超出范围的错误。
怀疑是dataGridView.SelectedRows[h] 有问题,也就是 h 可能取得不太对,你调试时看一下,是不是这里的索引越界了?
应该使用 dataGridView.Rows[h]
或者把h改成取得SelectedRows里的索引(不知道有没有这个方法)
h 是啥?