DataGridViewComboBoxCell.ReadOnly = true,但仍然可以更改所选值
DataGridViewComboBoxCell.ReadOnly = true, but can still change the selected value
我在 C# 中遇到 DataGridView 和 DataGridViewComboBoxCell 的问题(Visual Studio 2013,.NET 4.5.1)
DataGridView 有 3 列 DataGridViewComboBoxColumn 和 3 列 DataGridViewTextBoxColumn。
DataGrid 绑定到 DataTable
我需要为每个单元格单独设置只读 属性:
对于现有行:
只有最后一个单元格 (DataGridViewTextBoxCell) 可以编辑。
添加新行时,除两个文本框单元格外的所有单元格都应是可编辑的。
我的问题是,即使 ReadOnly = true,最终用户仍然可以更改 DataGridViewComboBoxCells 的选择;
在 DataGridViewTextBoxCells 上设置 ReadOnly=true 效果很好
在 DataGridViewComboBoxCell 上设置 ReadOnly=true 无效。
当写出 ReadOnly 属性 时,它 returns 为真,但单元格仍可编辑。
您可以在 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
这应该以更直接的方式更正 readonly=true 被忽略的问题:
我在 C# 中遇到 DataGridView 和 DataGridViewComboBoxCell 的问题(Visual Studio 2013,.NET 4.5.1)
DataGridView 有 3 列 DataGridViewComboBoxColumn 和 3 列 DataGridViewTextBoxColumn。
DataGrid 绑定到 DataTable
我需要为每个单元格单独设置只读 属性:
对于现有行: 只有最后一个单元格 (DataGridViewTextBoxCell) 可以编辑。
添加新行时,除两个文本框单元格外的所有单元格都应是可编辑的。
我的问题是,即使 ReadOnly = true,最终用户仍然可以更改 DataGridViewComboBoxCells 的选择;
在 DataGridViewTextBoxCells 上设置 ReadOnly=true 效果很好
在 DataGridViewComboBoxCell 上设置 ReadOnly=true 无效。 当写出 ReadOnly 属性 时,它 returns 为真,但单元格仍可编辑。
您可以在 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
这应该以更直接的方式更正 readonly=true 被忽略的问题: