Vb.net 下一行的KeyDown事件
我在VS中创建了这个表单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
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
但是,您应该在表单设计器
或表单加载
中将Form1KeyPreview
属性设置为True
,以便表单在将事件传递给具有焦点的控件之前接收关键事件
有关更多信息,请参见。解决方案是使用事件
KeyUp
而不是KeyDown是否尝试了我的建议?通过检查行和列,可以避免事件“DataGridView1\u KeyDown”对于Combobox和其他。此事件仅在我在文本框中写入内容时选择表单或DGV,然后按下Enter键时触发。事件不会触发