是否可以通过按下键开始编辑 DataGridViewComboBoxCell?
Is it possible to start editing a DataGridViewComboBoxCell by pressing down key?
我正在开发一个使用 DataGridView 的项目,其中一些列是 DataGridViewComboBoxColumn。
我的用户想通过按下键来编辑这些 ComboBoxCell。
实际上我有两个想法:
- 将这些单元格开始编辑模式的键改为向下键
- 检查我的 DataGridView 上的事件 Keydown,如果 CurrentCell 是 ComboBoxCell,则强制下拉此单元格
但我没能找到一种方法来做这些。
那么,有没有办法实现这个?(即使它没有使用我的想法之一)
您可以使用 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#
。
我正在开发一个使用 DataGridView 的项目,其中一些列是 DataGridViewComboBoxColumn。
我的用户想通过按下键来编辑这些 ComboBoxCell。
实际上我有两个想法:
- 将这些单元格开始编辑模式的键改为向下键
- 检查我的 DataGridView 上的事件 Keydown,如果 CurrentCell 是 ComboBoxCell,则强制下拉此单元格
但我没能找到一种方法来做这些。
那么,有没有办法实现这个?(即使它没有使用我的想法之一)
您可以使用 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#
。