我在VS
中创建了这个表单
我自动将NumPlace TextBox
设置为1
,当我按下Enter
键以在下一行自动增加NumPlace
时,我想要这样做。
这是我写的代码:
Private Sub DataGridView1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
If e.KeyCode = Keys.Enter Then
MsgBox("Enter key is pressed !")
End If
End Sub
但它不起作用只有当我选择一些行结束时按“Enter”但当我更改ComboBox的值或当我选择NumPlace TextBox
然后我按下{时{1}}该事件不起作用。
答案 0 :(得分:1)
您需要检查ColIndex和RowIndex ......................
Dim currCell As DataGridViewCell = DataGridView1.CurrentCell
答案 1 :(得分:0)
DataGridView1_KeyDown
事件仅在焦点位于DataGridView1
时触发。请尝试处理Form1_KeyDown
事件。
Private Sub Form1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Enter Then
MsgBox("Enter key is pressed !")
End If
End Sub
但是,您应该在KeyPreview
或True
中将Form1 Form Designer
属性设置为Form Load
,以便表单在事件传递给控件之前接收关键事件有焦点的。
请参阅this了解详情
答案 2 :(得分:0)
解决方案是使用事件KeyUp
代替KeyDown