提供的行已经属于DataGridView控件C#

时间:2014-04-01 09:51:05

标签: c# datagridview

我正在尝试将DatagridView的行移动到DataGridViewRowCollection,此集合表示DataGridViewRowCollection列表中名为“SacRowsColl”的项目。

现在我在foreach循环的第二行有一个ArgumentOutOfRangeException,当我在它之前注释该行导致另一个异常“提供的行已经属于一个DataGridView控件”。

     private void ChangeSac_DeselectingTabPage(object sender, TabControlCancelEventArgs e)
     {
        List<DataGridViewRowCollection> SacRowsColl = new List<DataGridViewRowCollection>();

        if (dgv.Rows.Count != 0)
        {
            foreach (DataGridViewRow row in dgv.Rows.OfType<DataGridViewRow>().ToArray())
            {
                dgv.Rows.Remove(row);
                SacRowsColl[0].Add(row);//this line throws an ArgumentOutOfRangeException
            }
        }
      }

2 个答案:

答案 0 :(得分:0)

无需一次又一次地重新添加行。该行本身会跟踪它所在的DataGridView。

答案 1 :(得分:0)

每次将新行添加到同一DataGridViewRowCollection SacRowsColl[0]时。

你也应该增加SacRowsColl