2012-12-03 69 views
-3

我试图运行这个for循环来填充datagrid视图中的某个列,但给出“索引超出范围”的错误,必须是非负数,小于集合的大小。 参数名称:索引”C#中的循环错误

   for (int i = 0; i < noofloops; i++) 
       { 
        dgroute.Rows[i].Cells[0].Value ="Hey"; 
       } 

我得到了一些新增加的信息...这里是整个代码什么IM真正想要做的是,我想要得到的DATEPICKER1到DATEPICKER2的日期。香港专业教育学院减去DATE1和date2得到差2个日期及循环播放,以显示日期1和date2之间的所有的具体日期在DataGridView

private void btnOK_Click(object sender, EventArgs e) 
     { 
       DateTime A = dtFrm.Value; 
       DateTime B = dtTo.Value; 
       TimeSpan ts = B - A; 
       int days = ts.Days; 




        for (int i = 0; i < dgroute.Rows.Count; i++) 
        { 

         dgroute.Rows[i].Cells[0].Value ="Hey"; 

        } 

       } 
     } 
+0

你有什么试过?你到目前为止如何调试这个问题? – Rob

+0

noofloops计数大于dgroute.Rows计数 –

+0

或者noofloops超过Rows.Count或单元格对于某些索引是空的 – Sarang

回答

1

试着改变你的循环,这个代替:

for (int i = 0; i < dgroute.Rows.Count; ++i) 
{ 
    dgroute.Rows[i].Cells[0].Value ="Hey"; 
} 
+0

datagridview首先是空的.. – user974015

+0

如果datagridview是空的你将如何编辑不存在的行/单元格,你可能想先添加一些行 –

0

试试这个

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

考虑:

  for (int i = 0; i < noofloops && i < dgroute.Rows.Count; i++) 
      { 
       dgroute.Rows[i].Cells[0].Value ="Hey"; 
      } 

你最有可能索引超过dgroute.Rows的结尾。