为什么 SendKeys.Send("{TAB}")的时候光标跳不停
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If keyData.Enter Then
SendKeys.Send("{TAB}")
End If
End Function
本意是在窗体上按回车键的时候,转换成 Tab 键,可是上面的代码执行的结果却不如人意:
当我按回车的时候,光标就会在窗体上不停的跳动,非得暂停程序才可以。
为什么不是发送一次 Tab 呢?
问题点数:20、回复次数:4Top
1 楼liujiayu10(活着就好)回复于 2004-09-03 08:45:06 得分 10
Public Sub SetFocusCtrl(ByVal KeyAscii As String) '控件焦点转移(针对回车键)
On Error Resume Next
If Asc(KeyAscii) = 13 Then
SendKeys.Send("{tab}")
KeyAscii = 0
End If
End SubTop
2 楼3tzjq(永不言弃)回复于 2004-09-03 08:45:59 得分 10
直接将 If keyCode.Enter Then SendKeys.Send("{TAB}") 写在Form的KeyPress事件中退可。你上述的问题可能是被触发了多次造成。
Top
3 楼liujiayu10(活着就好)回复于 2004-09-03 08:46:06 得分 0
Private Sub TBProduct_Name_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TBProduct_Name.KeyPress, TBProduct_Unit.KeyPress, TBProduct_BatchID.KeyPress, TBProduct_BarCode.KeyPress, TBProduct_Memo.KeyPress
SetFocusCtrl(e.KeyChar)
End SubTop
4 楼snow66(snow)回复于 2004-09-03 09:52:54 得分 0
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
SendKeys.Send("{TAB}")
End If
End FunctionTop




