0

次のコードを使用して、すべての曜日を取得して、2 つの日付の間で交互に表示し、それらを datagridview 列に追加します。

for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
  for (int j = 0; j < dtEnd.Subtract(dtStart).Days; j++)
  {
     TimeSpan counter = new TimeSpan(j, 0, 0, 0);
     dataGridView1.Columns[j].HeaderText += (dtStart + counter).DayOfWeek.ToString();
  }    
}

しかし、この行

dataGridView1.Columns[j].HeaderText += (dtStart + counter).DayOfWeek.ToString();

エラーの原因となります。それは言う:

インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません。パラメータ名:インデックス

どうすれば問題を解決できますか?

どんな助けでも大歓迎です

4

3 に答える 3

2
                      ↓
dataGridView1.Columns[i].HeaderText += (dtStart + counter).DayOfWeek.ToString();

上記のコード行には aj の代わりに i が必要です。

于 2012-11-15T22:49:00.030 に答える
1

おそらくi、列のインデックスとして使用するつもりでした:

dataGridView1.Columns[i].HeaderText += (dtStart + counter).DayOfWeek.ToString();
于 2012-11-15T22:49:10.207 に答える
0

おそらく、例外をスローするのはこの行です。

dataGridView1.Columns[j].HeaderText += ...

カウンター変数 'i' を使用してグリッド列を反復処理していますが、カウンター 'j' を使用して値を設定しています。列よりも日数が多い場合、この例外が発生します。ここで設計を再考する必要があるかもしれません。日ごとに列を追加するか、行を使用します。あなたが何を意図しているのかわからないので、これ以上、アドバイスするのは難しいです.

于 2012-11-15T22:50:01.993 に答える