【问题标题】:Is it possible to start editing a DataGridViewComboBoxCell by pressing down key?是否可以通过按下键开始编辑 DataGridViewComboBoxCell?
【发布时间】:2019-07-22 13:22:17
【问题描述】:

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

我实际上有两个想法:

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

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

那么,有没有办法实现这一点?(即使它没有使用我的一个想法)

【问题讨论】:

    标签: c# winforms datagridview datagridviewcombobox


    【解决方案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#

    【讨论】:

    • 非常感谢,在您的帮助下,我想出了如何让它发挥作用。现在我必须处理向下/向上键才能导航到下拉菜单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2013-02-12
    相关资源
    最近更新 更多