索引超出范围.必须是非负数并且小于集合的大小.4.

本文关键字:集合 小于 范围 是非 索引 | 更新日期: 2023-09-27 18:00:40

我的数据网格视图有4行。行[2]的名称为date1,行[3]的名称为date2。我还用Cells[2]和Cell[3]测试了这个代码,而不是Cells名称。但我又收到了同样的错误。问题是Index没有超出范围。并且小于集合的大小。这是我的代码:

for (int i = 0; i < dgv1frmModateEghamat.Rows.Count; i++)
        {
            DateTime date1 = Convert.ToDateTime(dgv1frmModateEghamat.SelectedRows[i].Cells["date1"].Value);
            DateTime date2 = Convert.ToDateTime(dgv1frmModateEghamat.SelectedRows[i].Cells["date2"].Value);
            TimeSpan span = date2.Subtract(date1);
            int result = int.Parse(span.TotalDays.ToString());
            if (result >= int.Parse(textBoxX2.Text))
            {
                dgv1frmModateEghamat.SelectedRows[i].Visible = true;
            }
            else
            {
                CurrencyManager cr = (CurrencyManager)BindingContext[dgv1frmModateEghamat.DataSource];
                cr.SuspendBinding();
                dgv1frmModateEghamat.SelectedRows[i].Visible = false;
            }
        }

但我看到了这个错误:指数超出了范围。必须是非负数并且小于集合的大小。

索引超出范围.必须是非负数并且小于集合的大小.4.

您在Rows中循环,但在SelectedRows中进行索引。您需要循环浏览SelectedRows。

for (int i = 0; i < dgv1frmModateEghamat.SelectedRows.Count; i++)

dgv1frmModateEghamat.SelectedRows的项目可能少于dgv1frmModateEghamat.Rows

相关文章: