日期:2014-05-17  浏览次数:20753 次

关于C#索引超出数组界限问题,代码如下
//我是要把txt文件里的2列数据,转到datagridview1控件里,运行出来后报错误,请教下,我哪里错了呢?怎么修改?
                  System.IO.StreamReader sr2 = new System.IO.StreamReader(fileName);
                  while (!sr2.EndOfStream)
                  {
                      //逗号分隔符
                      string[] item = sr2.ReadLine().Split(',');
                      int index = dataGridView1.Rows.Add();
                      dataGridView1[0, index].Value = item[0];
                      dataGridView1[1, index].Value = item[1];//此处报错,索引超过数组界限          
                  }
                  sr2.Close();                             
              }

------解决方案--------------------
string[] item = sr2.ReadLine().Split(',');
if(item.Length==2)
{
                      int index = dataGridView1.Rows.Add();
                      dataGridView1[0, index].Value = item[0];
                      dataGridView1[1, index].Value = item[1];//此处报错,索引超过数组界限 
}
------解决方案--------------------
再或者你可以加个循环 
for(int i=0;i<数组.length;i++)
{
   dataGridview1.rows[i].add(数组[i].ToString());
}
总之你的原因是因为datagridview没有自动增加列而引起的数组越界,你可以设置allowusertoaddrows 这个属性让他自增,不知道此属性对后台动态添加是否有效,手打代码 ,你理解了这个原理就ok,解决方法再多也比不上你自己明白错误的原因,不知楼主可否能理解?