Vb.net 下一行的KeyDown事件

Vb.net 下一行的KeyDown事件,vb.net,gridview,keydown,Vb.net,Gridview,Keydown,我在VS中创建了这个表单 NumPlace文本框自动设置为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

我在VS中创建了这个表单

NumPlace文本框
自动设置为
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

但它不起作用它只在我选择某个行结束时按“回车”时起作用,但当我更改组合框的值时,或者当我选择
NumPlace文本框
,然后按
Enter
时,事件不起作用。

您需要检查ColIndex和RowIndex

Dim currCell As DataGridViewCell = DataGridView1.CurrentCell    

DataGridView1\u向下键
事件仅在焦点位于
DataGridView1
时触发。尝试处理
Form1\u 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
但是,您应该在
表单设计器
表单加载
中将Form1
KeyPreview
属性设置为
True
,以便表单在将事件传递给具有焦点的控件之前接收关键事件


有关更多信息,请参见。解决方案是使用事件
KeyUp
而不是
KeyDown

是否尝试了我的建议?通过检查行和列,可以避免事件“DataGridView1\u KeyDown”对于Combobox和其他。此事件仅在我在文本框中写入内容时选择表单或DGV,然后按下Enter键时触发。事件不会触发