我有一个DataGridView
,其中一列是DataGridViewComboBoxColumn
。填充网格时,由于列中每个单元格上出现下拉箭头,该列看起来不同。我想更改此设置,以便隐藏下拉箭头,仅在实际突出显示行或选择组合框单元进行编辑时显示。我想要的行为就像 Visual Studio 中的属性窗口处理其值一样。
答案 0 :(得分:9)
在DataGridViewComboBoxColumn
中,有一个名为DisplayStyle
的属性。将其设置为Nothing
以隐藏DropDownButton
有关DataGridViewComboBoxDisplayStyle
枚举的详细信息,请参阅此MSDN link
答案 1 :(得分:0)
我花了一段时间才找到这个,但上面的答案与其他几页混在一起。
这是如何根据不同的值隐藏网格中的下拉列表。 valueToCheck必须位于包含您要隐藏的下拉列表之前的单元格中。
Private Sub dgv_CellPainting(ByVal sender As Object, ByVal e As
DataGridViewCellPaintingEventArgs) Handles dgv.CellPainting
'Pages Grid needs to be edited when rendering
If (e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0) Then
Dim valueToCheck = dgv.Rows(e.RowIndex).Cells(2).Value
If (valueToCheck <> "True") Then
Dim thisCol = DirectCast(dgv.Rows(e.RowIndex).Cells(e.ColumnIndex), DataGridViewComboBoxCell)
thisCol.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing
e.PaintBackground(e.ClipBounds, False)
e.Handled = True
End If
End If
End Sub
答案 2 :(得分:0)
如果设置DataGridViewComboBoxColumn.DisplayStyleForCurrentCellOnly = True
,则仅当单元格是当前单元格时才会显示下拉列表。