-3

このforループを実行してデータグリッドビューの特定の列を埋めようとしていますが、「インデックスが範囲外でした。負でなく、コレクションのサイズよりも小さい必要があります。パラメーター名:インデックス」というエラーが表示されます

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

私はいくつかの新しい追加情報を手に入れました...これがコード全体です。私が本当にやろうとしているのは、datepicker1の日付をdatepicker2に取得したいということです。date1 と date2 を減算して 2 つの日付の差を取得し、for ループして、date1 と 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";

                  }

              }
        }
4

3 に答える 3

1

代わりにループを次のように変更してみてください。

for (int i = 0; i < dgroute.Rows.Count; ++i)
{
    dgroute.Rows[i].Cells[0].Value ="Hey";
}
于 2012-12-03T01:36:28.410 に答える
1

検討:

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

dgroute.Rows の終わりを過ぎてインデックスを作成している可能性が最も高いです。

于 2012-12-03T01:39:26.590 に答える
0

これを試して

for (int i = 0; i < dgroute.Rows.Count -1; ++i)
{
    dgroute.Rows[i].Cells[0].Value ="Hey";
}
于 2012-12-03T01:39:02.220 に答える