通过按下键是否可以开始编辑DataGridViewComboBoxCell?

时间:2019-02-28 15:17:03

标签: c# winforms datagridview datagridviewcombobox

我正在一个使用DataGridView的项目中工作,其中一些列是DataGridViewComboBoxColumn。
我的用户想通过按下Down键来编辑这些ComboBoxCell。

我实际上有两个想法:

  1. 将开始编辑这些单元格的键更改为“向下键”
  2. 检查DataGridView上的事件Keydown,如果CurrentCell是ComboBoxCell,则强制下拉此单元格

但是我没有设法找到一种方法来做这些。

那么,有没有办法实现这一目标?(即使它不使用我的想法之一)

1 个答案:

答案 0 :(得分:1)

您可以使用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#