我有两个DataGridView对象,每个对象有五列。 dgv1有两列'Visible属性设置为false。 dgv2显示所有列。如果我从dgv1中删除DataGridViewRow,然后使用dgv1.Rows.Remove(row)
和dgv2.Rows.Add(row)
将其添加到dgv2,那么当我点击dgv2中dgv1中不可见的其中一个单元格时,我收到错误:< / p>
“当前单元格不能设置为不可见单元格”
我可以在从dgv1中删除DataGridViewRow后检查row.Cells[index].Visible
属性,并看到两个特定单元格的Visible属性设置为false,如预期的那样。但是,row.Cells[index].Visible
属性是只读的,因此在将行添加到dgv2之前,我无法将其更改为true。因此,当我将此行对象添加到dgv2并且所有列都可见时,我不知道如何防止每次单击隐藏在dgv1中的一个单元格时发生上述错误但现在在dgv2中可见
有谁知道如何解决这种情况,这可能是一个错误?
答案 0 :(得分:0)
也许不是最干净的方式,但它完成了你需要的工作。我不知道你删除行的标准是什么,所以在我的例子中我只选了一行(在我的例子中为索引2),对于你的情况它只是切换到你需要删除的行:
DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[2].Clone();
int pivot = 0;
foreach (DataGridViewCell item in dataGridView1.Rows[2].Cells)
{
row.Cells[pivot].Value = item.Value;
pivot++;
}
dataGridView1.Rows.Remove(dataGridView1.Rows[2]);
dataGridView2.Rows.Add(row);