Можно ли начать редактирование DataGridViewComboBoxCell нажатием клавиши «вниз»? - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю над проектом, в котором я использую DataGridView, с некоторыми из столбцов DataGridViewComboBoxColumn.
Мои пользователи хотят редактировать эти ComboBoxCell, нажимая клавишу «Вниз».

На самом деле у меня есть две идеи, как это сделать:

  1. Изменить клавишу, которая запускает режим редактирования этихот ячейки до клавиши «Вниз»
  2. Проверьте событие Keydown на моем DataGridView и, если CurrentCell является ComboBoxCell, вызовите раскрытие этой ячейки

Но мне не удалось найти способ сделать что-либоиз этих.

Итак, Есть ли способ достичь этого? (Даже если он не использует одну из моих идей)

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете использовать DataGridView.KeyDown событие:

Private Sub DataGridView1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown

    If e.KeyValue = Keys.Down Then
        With Me.DataGridView1
            If .Columns(.CurrentCell.ColumnIndex).GetType.Name = "DataGridViewComboBoxColumn" Then
                If Not .IsCurrentCellInEditMode Then
                    .BeginEdit(True)
                    CType(.EditingControl, ComboBox).DroppedDown = True
                    e.Handled = True
                End If
            End If
        End With
    End If

End Sub

Извините, код VB.NET, но вы можете легко перевести его на C#.

...