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

时间:2015-06-25 09:36:31

标签: c# datagridview datagridviewcomboboxcell

我对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 个答案:

答案 0 :(得分:1)

You can use a similar code in your 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

答案 1 :(得分:0)

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