ReadOnly Columns DataGridView中的可编辑单元格

本文关键字:编辑 单元格 Columns DataGridView ReadOnly | 更新日期: 2023-09-27 18:01:29

我有一个DataGridView,从数据库中的数据填充,但不与数据源。我从我的DB中得到一行,并在init上添加一行到我的DataGridView。

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

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

即允许——

            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!

ReadOnly Columns DataGridView中的可编辑单元格

也许您需要创建只读列的假象。

与其将列设置为read - only,不如简单地将列中的每个单元格值不等于null或String.Empty的地方修改为read - only。这将允许用户编辑那些空白的单元格,并保护您的数据。

只是循环通过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;
     }
}

请原谅任何语法问题,我是凭脑子做的