我正在尝试将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
}
}
}
答案 0 :(得分:0)
无需一次又一次地重新添加行。该行本身会跟踪它所在的DataGridView。
答案 1 :(得分:0)
每次将新行添加到同一DataGridViewRowCollection SacRowsColl[0]
时。
你也应该增加SacRowsColl