解决方案 »

  1.   

    dataGridView2.Rows.Remove(currentrow);应该是这句吧,不要在循环里remove表格
    可以先用array存下来,然后从最后一行开始往前remove
      

  2.   

    还有
    if (dataGridView4.Rows[int_row].Cells["mxbh_mx"].Value.ToString() == currentrow.Cells["mxbh"].Value.ToString())
                                    dataGridView4.Rows.RemoveAt(int_row);
                                break;
    这里确定不用加{}??
    你这是不管if走不走,都直接break了
      

  3.   

    你在Foreach里,修改集合的东西,是会抛异常的,
    dataGridView2.Rows.Remove(currentrow);这一句,你改变了Rows的集合数据,会出错的。
      

  4.   

    foreach确实不能修改集合但是for还是可以的,只有要注意索引 dataGridView4.Rows.RemoveAt(int_row--);假设把第4行移除了,下一行还是第四行,所以此处的--与步长++抵消掉
      

  5.   

        for(int int_row=0;int_row<dataGridView4.Rows.Count;int_row++)//这句提示无法访问的代码把int_row改为 i 试试。