For Each row As DataGridViewRow In dgv.Rows
Dim Cell As DataGridViewComboBoxCell = CType(row.Cells(4), DataGridViewComboBoxCell)
Cell.ReadOnly = True
Cell.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing
If row.Cells(2).Value IsNot Nothing Then
Cell.ReadOnly = False
Cell.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox
End If
Next
3 回答
请参阅ComboBox with read only behavior的实施 .
您还可以根据
DataGridView
属性的readonly更改时更改DisplayStyle . 将DisplayStyle
设置为DataGridViewComboBoxDisplayStyle.Nothing将隐藏下拉按钮 .例如,通过单击按钮更改
ReadOnly
属性将如下所示:编辑:
Editable http://i51.tinypic.com/5e7o1w.jpg
只读:
ReadOnly http://i52.tinypic.com/1zgaxyt.jpg
我得到了我的问题的解决方案,只是想在这里发布 . 进入编辑模式时,运行以下代码可以解决问题 .
在将dgc设置为dataGridCell之前,我们可以在其中添加项集合 . 希望能帮助到你 .
问题:如果列和行索引在编辑时变得相同,我收到错误 - 操作无效,因为它导致对SetCurrentCellAddressCore函数的可重入调用 .
如果要隐藏所选行的组合框,可以使用DataGridViewComboBoxDisplayStyle属性
选项包括ComboBox,DropdownBox或None
在示例中 - 如果第2列中有值,则仅显示第4列中的ComboBox