我使用以下代码获取一周中的所有日期,以便在两个日期之间相互显示它们并将它们添加到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();
导致错误。它说:
指数超出范围。必须是非负数且小于集合的大小。 参数名称:index
我该如何解决问题?
任何帮助将不胜感激
答案 0 :(得分:2)
↓
dataGridView1.Columns[i].HeaderText += (dtStart + counter).DayOfWeek.ToString();
在上面的代码行中应该有一个i而不是j。
答案 1 :(得分:1)
您可能打算使用i
作为列的索引:
dataGridView1.Columns[i].HeaderText += (dtStart + counter).DayOfWeek.ToString();
答案 2 :(得分:0)
据推测,这条线就是抛出异常;
dataGridView1.Columns[j].HeaderText += ...
您正在使用计数器变量'i'迭代网格列,但计数器'j'用于设置值。如果您有多天而不是列,则会遇到此异常。您可能需要在此重新考虑您的设计。要么为每天添加列,要么使用行。我不知道你的意图,所以除此之外,很难提出建议。