在按钮单击上添加datagridview单元会显示错误" Collection已属于.."

时间:2015-07-24 14:58:00

标签: c# winforms datagridview datagridviewcomboboxcell

我正在向表单动态添加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控件。这个操作   已不再有效。

不确定这意味着什么。

在异常之后,表单加载了一个新行和一个空单元格。

1 个答案:

答案 0 :(得分:2)

你应该将新细胞放入一个存在的细胞中,而不是细胞收集结束。

也许是这样的:

 dgv1.Rows[RowIndex].Cells[yourComboboxColumnIndex] = cbcell;

错误消息表示只要它不是DataGridview的一部分,您只能添加到行的Cells集合。您可以在代码中创建DataGridViewRow,并为其添加适当数量的合适单元格。然后你可以把它添加到DGV;但最终所有行必须具有相同数量的单元格。