0

我使用以下代码获取一周中的所有日期,以在两个日期之间依次显示它们并将它们添加到 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();

在上面的代码行中应该有一个 i 而不是 aj。

于 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 回答