我尝试运行这个代码
workersDVG.Columns.Add("WORKER", "worker");
DataGridViewRow row = (DataGridViewRow)workersDVG.Rows[0].Clone();
row.Cells["WORKER"].Value = 4;
workersDVG.Rows.Add(row);
但我得到了exeption,因为没有列名和#34; WORKER"。 如果有人能告诉我问题在哪里,我会很高兴。 TNX。
答案 0 :(得分:0)
Clone()
无效,因为克隆的行dows不包含列Worker
。
试试这样:
workersDVG.Columns.Add("WORKER", "worker");
//add copy of first row (index 0)
int index = workersDVG.Rows.AddCopy(0);
//in var index you will find index of your newly added row.
//now add value of WORKER column in that new row
workersDVG.Rows[index].Cells["WORKER"].Value = 4;
答案 1 :(得分:0)
如果您查看DataGridViewRow 的文档,可以找到属性DataGridView
:
获取与此元素关联的DataGridView控件
如果您在调试器中查看此内容,您会看到它是null
:
因此row
无法找到任何列!
此外,它的索引为-1,因为它位于DataGridView之外。
为什么不直接添加下面的行并直接更改值?!这有效:
workersDVG.Columns.Add("WORKER", "worker");
DataGridViewRow row = (DataGridViewRow)workersDVG.Rows[0].Clone();
workersDVG.Rows.Add(row);
workersDVG.Rows[1].Cells["WORKER"].Value = 4;