我想更改序号写了这个循环,,结果每当调这个循环时都会发生这个错误!!
    未处理的“System.StackOverflowException”类型的异常出现在 System.Windows.Forms.dll 中。,求教高手谢谢!   在线等!哪儿有错?????
           for (int i = 0; i < jaDataGridView1.Rows.Count; i++)
                {
                   
                    jaDataGridView1.Rows[i].Cells["序号"].Value = i+1;
                }

解决方案 »

  1.   

    应该是      for (int i = 0; i < jaDataGridView1.Rows.Count-1; i++)
                    {
                       
                        jaDataGridView1.Rows[i].Cells["序号"].Value = i+1;
                    }
      

  2.   

    jaDataGridView1是不是GridView啊?如果是的话应该是
    for (int i = 0; i < jaDataGridView1.Rows.Count-1; i++),你看GridView的最下面有1个空行
      

  3.   

    zhamx() ( ) 信誉:100    Blog  2006-10-23 09:17:00  得分: 0  
     
     
       请检查["序号"]列是否为只读
      
     
    是只读的会怎么样呢信誉,,,??????????
      

  4.   

    for (int i = 0; i < jaDataGridView1.Rows.Count-1; i++)
                    {
                       
                        jaDataGridView1.Rows[i].Cells["序号"].Value = i+1;
                    }
      

  5.   

    如果是只读的,这句:
    jaDataGridView1.Rows[i].Cells["序号"].Value = i+1;
    就执行不了,因为是写。不过从你提示的错误来看,显然不是这个问题。
      

  6.   

    for (int i = 0; i < jaDataGridView1.Rows.Count-1; i++)
                    {                   
                        jaDataGridView1.Rows[i].Cells["序号"].Value = i+1;
                    }
    C#里下标是从0开始的.
      

  7.   

    for (int i = 0; i < jaDataGridView1.Rows.Count-1; i++)
      

  8.   

    for (int i = 0; i < jaDataGridView1.Rows.Count-1; i++)
      

  9.   

    谢谢大家的帮忙,可问题依然存在。
      我想更改序号,,结果每当调这个循环时都会发生这个错误!!
        未处理的“System.StackOverflowException”类型的异常出现在 System.Windows.Forms.dll 中     而且提示是死循环!!
      

  10.   

    知道了。这样,
    int nCount = jaDataGridView1.Rows.Count;
    for (int i = 0; i < nCount; i++)
    {                   
            jaDataGridView1.Rows[i].Cells["序号"].Value = i+1;
    }不要用属性做判断条件,属性内部谁知道他怎么实现的。
      

  11.   

    一更改序号就会出现这个问题,,但有几次是好的,出现这种情况是80%机率,就是找不到什么原因,我就是想动态改变只读datagridview1上“序号”这一列的值,让他动态重新排序,出现以上错误,,请指教,在循环时会提示错误
      

  12.   

    wuyazhe(熟悉:evc/.net正学习:Rational Rose
    这个我也试过了,还是不行循环时
      jaDataGridView1.Rows[i].Cells["序号"].Value 赋值时出现问题
      

  13.   

    int nCount = jaDataGridView1.Rows.Count-1;
    for (int i = 0; i < nCount; i++)
    {                   
            jaDataGridView1.Rows[i].Cells["序号"].Value = i+1;
    }还有,你可以用foreach啊。这个不会访问越界。也不用考虑访问到空对象。
      

  14.   

    我想更改序号写了这个循环,,结果每当调这个循环时都会发生这个错误!!
    未处理的“System.StackOverflowException”类型的异常出现在 System.Windows.Forms.dll 中。,求教高手谢谢! 在线等!哪儿有错?????
    for (int i = 0; i < jaDataGridView1.Rows.Count; i++)
    {jaDataGridView1.Rows[i].Cells["序号"].Value = i+1;
    }
    ==============================================
    楼主的上面代码应该是没有问题的,
    System.StackOverflowException错误明显是堆栈溢出,而不是索引超出为什么各位还在回答
    for (int i = 0; i < jaDataGridView1.Rows.Count-1; i++),而且反而更错了。
    由于没有看到楼主完整的代码,建议可能解决问题的方式为一下:
    1.检查该段代码所在的方法或属性,单步调试是否存在无限递归导致堆栈溢出。
    特别是使用属性方式不小心把属性名和字段名写成一样就会导致该问题,比如
    public string UP
    {
         get{return UP;}
    }
    2.不要通过更新DataGridView的单元格来操作列的显示,而是直接更新该控件绑定的数据源,比如DataView,DataTable。对其操作更健壮。
      

  15.   

    回看我的贴子,发现楼上是正解,,查出原因了,,原来是我用我同事的自定义控件datagridview出错了不是代码的问题,