如何隐藏DataGridViewComboBoxColumn的下拉箭头,如Visual Studio Properties窗口?

时间:2009-07-10 00:09:03

标签: c# .net winforms datagridview

我有一个DataGridView,其中一列是DataGridViewComboBoxColumn。填充网格时,由于列中每个单元格上出现下拉箭头,该列看起来不同。我想更改此设置,以便隐藏下拉箭头,仅在实际突出显示行或选择组合框单元进行编辑时显示。我想要的行为就像 Visual Studio 中的属性窗口处理其值一样。

3 个答案:

答案 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,则仅当单元格是当前单元格时才会显示下拉列表。