为什么 SendKeys.Send("{TAB}")的时候光标跳不停

dofly 2004-09-03 08:39:38
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 呢?
...全文
154 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
snow66 2004-09-03
  • 打赏
  • 举报
回复
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 Function
liujiayu10 2004-09-03
  • 打赏
  • 举报
回复
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 Sub
3tzjq 2004-09-03
  • 打赏
  • 举报
回复
直接将 If keyCode.Enter Then SendKeys.Send("{TAB}") 写在Form的KeyPress事件中退可。你上述的问题可能是被触发了多次造成。
liujiayu10 2004-09-03
  • 打赏
  • 举报
回复
Public Sub SetFocusCtrl(ByVal KeyAscii As String) '控件焦点转移(针对回车键)

On Error Resume Next
If Asc(KeyAscii) = 13 Then
SendKeys.Send("{tab}")
KeyAscii = 0
End If
End Sub

16,552

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧