Solved having to click twice to drop a DataGridViewComboBox

The default behaviour of a drop down combobox in a datagridview is for it to require one click to activate it and another to actually drop it down.

Users can’t get this paradigm and so prefer for it to activate immediately on clicking anywhere on the cell. I have seen many solutions on Stackoverflow for this, but most require the arrow part of the cell to be clicked, not working if the user just clicks the cell in the middle.

image

I found the following solution to work for me:

Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) _
                                                    Handles DataGridView1.CellClick
    If (e.ColumnIndex > 0) And e.RowIndex <> -1 Then
        With DirectCast(sender, DataGridView)
            If .Columns(e.ColumnIndex).Name = "PalletType" Then
                .CurrentCell = .Rows(e.RowIndex).Cells(e.ColumnIndex)
                .BeginEdit(True)
                DirectCast(.EditingControl,  _
                System.Windows.Forms.DataGridViewComboBoxEditingControl).DroppedDown = True
            End If
        End With
    End If
End Sub

This makes certain the column is not a header cell, and only does it for the column with the name “PalletType”

I also have the DatagridView set to EditOnEnter for the Edit mode.

image