System.ArgumentOutOfRangeException occurred in mscorlib.dll
本文关键字:mscorlib dll in occurred ArgumentOutOfRangeException System | 更新日期: 2023-09-27 18:20:30
我有一个DataGridView,我正在从对象列表中填充它。然而,通过我的foreach
的第二个循环产生了ArgumentOutOfRangeException
。
这是我的代码:
foreach (Abonat abonat in list.getAbonati())
{
dataGridView1.Rows[i].Cells[0].Value = abonat.id; //exception occurs here on second loop
dataGridView1.Rows[i].Cells[1].Value = abonat.prenume;
dataGridView1.Rows[i].Cells[2].Value = abonat.nume;
dataGridView1.Rows[i].Cells[3].Value = abonat.adresa;
i++;
}
第一次运行foreach
时,一切都很好,它甚至显示在DataGridView中,但第二次,我得到了异常(实际上它说在mscorlib.dll中发生了类型为"System.ArgumentOutOfRangeException"的首次机会异常),并且显示了我的表单,而没有运行foreach的其余部分。
有什么帮助吗?我试过实例化dataGridView1.Rows[i] = new DataGridViewRow();
,但它是只读的。
在尝试访问行之前,需要先创建行;
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = title;
dataGridView1.Rows[n].Cells[1].Value = dateTimeNow;
然后您可以通过dataGridView1.Rows[n].Cells[0]访问它们。Value=x;
干杯
在您的代码上添加以下内容
dataGridView1.ColumnCount=4;dataGridView1.ColumnHeadersVisible=true;
您不能以这种方式添加它。对于初学者来说,它是不知道或定义的,但你可以增加它。你可以添加你想要的行,但你添加错误是我们试图告诉你的。
此处的用法不正确:dataGridView1.Rows[i].Cells[0].Value=abonat.id;