我对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,但单元格仍然可以编辑。
答案 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