2012-12-03 73 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的結尾。