1

我有一个从数据库中的数据填充的 DataGridView,但没有使用 DataSource。我从我的数据库中得到一行,并在初始化时向我的 DataGridView 添加一行。

我的问题是,我有一列是只读的,但有时,该列的数据库中没有数据,在这种情况下,我希望用户能够添加它,但如果信息来了,则不要覆盖数据从数据库。

如何使列中的单个单元格可编辑,而不是列?

IE 允许这个 ---

            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!
4

1 回答 1

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;
     }
}

请原谅任何语法问题,我已经做到了这一点。

于 2013-02-26T22:12:44.933 回答