我有一个DataGridView,它是从数据库中的数据填充的,但不是使用DataSource填充的。我从我的数据库中获取一行,并在init上向我的DataGridView添加一行。
我的问题是,我有一个ReadOnly列,但有时候,此列的数据库中没有数据,在这种情况下,我希望用户能够添加它,但不会覆盖数据,如果信息来自数据库。
如何在列中编辑单个单元格,而不是列?
即。允许这个---
Col1 Col2 (ReadOnly) Col1 Col2 (ReadOlny)
Row1 A Can't Change --> Row1 J Can't Change
Row2 B Row2 B I added this!
Row3 C No Change Row3 T No Change
但不是这个---
Col1 Col2 (ReadOnly) Col1 Col2 (ReadOlny)
Row1 A Can't Change --> Row1 J OOPS!
Row2 B Row2 B I added this!
Row3 C No Change Row3 T Not allowed!
答案 0 :(得分:2)
也许您需要创建只读列的错觉。
您可以简单地将列中的每个单元格修改为只读单元格值不等于null或String.Empty,而不是将列设置为只读。这将允许用户编辑那些空白的单元格并保护您的数据。
只需遍历DataGridViewRow: -
Foreach(DataGridViewRow row in DataGridView1.Rows)
{
If(!row.Cells[2].Value.Equals(null) || !row.Cells[2].Value.Equals(String.Empty))
{
row.Cells[2].ReadOnly = true;
}
}
请原谅任何语法问题,我已经做到了这一点。