我正在向表单动态添加datagridview。加载表单后,如果用户想要添加新行,我有一个按钮,用户可以使用该按钮添加一行。在此按钮上单击我正在尝试添加DataGridViewComboBoxCell:
DataGridViewRow dtRow = new DataGridViewRow();
dgv1.Rows.Add(dtRow);
int RowIndex = dgv1.Rows.IndexOf(dtRow);
int TotalRowsvailable = NPDESconfigModel.Count; // rows in database
if (RowIndex >= TotalRowsvailable) // to see if this is the new row
{
List<string> a = (from p in y
select p.Point_Name).ToList();
DataGridViewComboBoxCell cbcell = new DataGridViewComboBoxCell();
cbcell.DataSource = a;
cbcell.DisplayMemeber = "Point_Name";
dgv1.Rows[RowIndex].Cells.Add(cbcell);
}
我在代码的最后一行得到的异常如下。 Collection已经属于DataGridView控件。这个操作 已不再有效。
不确定这意味着什么。
在异常之后,表单加载了一个新行和一个空单元格。
答案 0 :(得分:2)
你应该将新细胞放入一个存在的细胞中,而不是细胞收集结束。
也许是这样的:
dgv1.Rows[RowIndex].Cells[yourComboboxColumnIndex] = cbcell;
错误消息表示只要它不是DataGridview的一部分,您只能添加到行的Cells集合。您可以在代码中创建DataGridViewRow,并为其添加适当数量的合适单元格。然后你可以把它添加到DGV;但最终所有行必须具有相同数量的单元格。