DataGridViewComboBoxCell.ReadOnly =真实的,但仍然可以更改所选值(

2019-10-23 12:36发布

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

在DataGridView有3列与DataGridViewComboBoxColumn和3列与DataGridViewTextBoxColumn。

DataGrid绑定到数据表

我需要单独为每个小区设置只读属性:

对于现有行:只有最后一个单元格(DataGridViewTextBoxCell)应为可编辑的。

当添加新行,但有两个文本框的所有细胞应是可编辑的。

我的问题是,最终用户仍然可以改变DataGridViewComboBoxCells的选择,即使只读= TRUE;

设置只读=真正的DataGridViewTextBoxCells工作正常

设置只读=上的DataGridViewComboBoxCell真的没有效果。 当写出来的只读属性,它返回true,但细胞仍然是可编辑的。

Answer 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


Answer 2:

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



文章来源: DataGridViewComboBoxCell.ReadOnly = true, but can still change the selected value