首页 文章

DataGridViewComboBoxCell.ReadOnly = true,但仍可以更改所选值

提问于
浏览
1

我在C#中遇到DataGridView和DataGridViewComboBoxCell的问题(Visual Studio 2013,.NET 4.5.1)

DataGridView有3列DataGridViewComboBoxColumn和3列DataGridViewTextBoxColumn .

DataGrid绑定到DataTable

我需要为每个单元格单独设置readonly属性:

对于现有行:只能编辑最后一个单元格(DataGridViewTextBoxCell) .

添加新行时,除两个文本框单元格外的所有单元格都应可编辑 .

我的问题是,即使ReadOnly = true,最终用户仍然可以更改DataGridViewComboBoxCells的选择;

在DataGridViewTextBoxCells上设置ReadOnly = true可以正常工作

在DataGridViewComboBoxCell上设置ReadOnly = true无效 . 写出ReadOnly属性时,它返回true,但单元格仍然可以编辑 .

2 回答

  • 1

    您可以在 DataGridView.CellBeginEdit 中使用类似的代码:

    If Not <your code to verify if you are adding a new row> Then
        If Not YourDataGridView.Columns(e.ColumnIndex).Name = "EditableColumnName" Then
            e.Cancel = True
        End If
    End If
    
  • 0

    这应该以更直接的方式纠正readonly = true被忽略的问题:https://stackoverflow.com/a/48471383/5750078

相关问题