Как скрыть стрелку раскрывающегося списка DataGridViewComboBoxColumn, например окно свойств Visual Studio?

у меня есть DataGridView где один из столбцов-это DataGridViewComboBoxColumn. Когда сетка заполнена, этот столбец выглядит по-разному из-за стрелки раскрывающегося списка, появляющейся в каждой ячейке столбца. Я хотел бы изменить это так, чтобы стрелка раскрывающегося списка была скрыта и отображалась только тогда, когда строка фактически выделена или когда ячейка combobox выбрана для редактирования. Поведения я хотел бы как свойства

3 ответов


на DataGridViewComboBoxColumn, есть свойство под названием DisplayStyle. Установить Nothing чтобы скрыть DropDownButton

дополнительная информация о DataGridViewComboBoxDisplayStyle перечисление доступно на этом MSDN link


потребовалось некоторое время, чтобы найти это, но выше был ответ, смешанный с парой других страниц.

вот как скрыть раскрывающийся список из сетки на основе значения в другом. 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

Если вы устанавливаете DataGridViewComboBoxColumn.DisplayStyleForCurrentCellOnly = True, тогда раскрывающийся список появляется только тогда, когда ячейка является текущей ячейкой.