AddHandler grdColStyle.TextBox.KeyPress, New Windows.Forms.KeyPressEventHandler(AddressOf TEXT_Keypress)
Private Sub TEXT_Keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
If e.KeyChar = Chr(Keys.Enter) Then
MsgBox(e.KeyChar)
End If
end sub
字母键和数字键可以捕获,enter键还是不行!
henry的文章中有,你看看吧,Datagrid事件响应
http://www.csdn.net/develop/author/netauthor/Latitude/
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If msg.WParam.ToInt32 = 13 Then
Messagebox.Show "Press Enter"
Return True
else
return mybase.processcmdkey(msg,keydata)
End If
End Function ProcessCmdKey
UP
将你的DataGrid声明进行如下更改:
Friend WithEvents DataGrid1 As DataGrid
改为
Friend WithEvents DataGrid1 As cmicDataGrid
Me.DataGrid1 = New DataGrid
改为
Me.DataGrid1 = New cmicDataGrid
增加组件类
Public Class cmicDataGrid
Inherits System.Windows.Forms.DataGrid
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If msg.WParam.ToInt32 = 13 Then
MessageBox.Show("Press Enter")
Return True
Else
Return MyBase.ProcessCmdKey(msg, keyData)
End If
End Function ProcessCmdKey
End Class
增加组件类
Public Class cmicDataGrid
Inherits System.Windows.Forms.DataGrid
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If msg.WParam.ToInt32 = 13 Then
MessageBox.Show("Press Enter")
Return True
Else
Return MyBase.ProcessCmdKey(msg, keyData)
End If
End Function ProcessCmdKey
End Class
将你的DataGrid声明进行如下更改:
Friend WithEvents DataGrid1 As DataGrid
改为
Friend WithEvents DataGrid1 As cmicDataGrid
Me.DataGrid1 = New DataGrid
改为
Me.DataGrid1 = New cmicDataGrid
如下代码可实现:
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
Select Case keyData
Case Keys.Enter
SendKeys.Send("{Tab}")
Return True
End Select
End Function
我也说一个:你继承datagridtextbox类格式化你的datagrid捕捉enter键
在keydown事件中:
Private Sub txtCode_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtCode.KeyDown
If e.KeyCode = 13 Then btnFind_Click(sender, e)
End Sub