你在窗体中这样写 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyTab Then SendKeys "{ENTER}" End If End SubPrivate Sub Form_Load() Me.KeyPreview = True End Sub
这样你按TAB时,等于按了TAB又按了回车
Private Sub Form_KeyPress(KeyAscii As Integer) if KeyAscii = vbKeyTab then KeyAscii = vbKeyEnter End if End SubPrivate Sub Form_Load() Me.KeyPreview = True End Sub 你可以在窗体上放一个MultiLine=True的文本框,然后按TAB,文本框中是回车的效果。有个问题就是如果窗体上存在其他控件而且这些控件TabStop=True,那这个TAB键就算捕捉了也不能实现类似功能了,此时需要实现什么功能就写什么代码即可。譬如:if Keyascii = 9 then text1.Text = text1.text & vbcrlf end if
Private Sub Form_KeyPress(KeyAscii As Integer) if KeyAscii = vbKeyTab then KeyAscii = vbKeyEnter End if End SubPrivate Sub Form_Load() Me.KeyPreview = True End Sub 这样的代码不行。 你检测到TAB按下的同时要检测你的窗体是不是处于激活状态,如果处于激活状态那么可以利用API发送回车键,否则不予执行。 这个思路我想应该是对的。我想问一下具体是怎样实现的用什么api?贺兰石能不能用代码指点一下,谢谢!
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyTab Then
SendKeys "{ENTER}"
End If
End SubPrivate Sub Form_Load()
Me.KeyPreview = True
End Sub
if KeyAscii = vbKeyTab then
KeyAscii = vbKeyEnter
End if
End SubPrivate Sub Form_Load()
Me.KeyPreview = True
End Sub
你可以在窗体上放一个MultiLine=True的文本框,然后按TAB,文本框中是回车的效果。有个问题就是如果窗体上存在其他控件而且这些控件TabStop=True,那这个TAB键就算捕捉了也不能实现类似功能了,此时需要实现什么功能就写什么代码即可。譬如:if Keyascii = 9 then
text1.Text = text1.text & vbcrlf
end if
如果以上两位朋友的代码满足不了楼主的要求,那就用键盘钩子。
if KeyAscii = vbKeyTab then
KeyAscii = vbKeyEnter
End if
End SubPrivate Sub Form_Load()
Me.KeyPreview = True
End Sub
这样的代码不行。
你检测到TAB按下的同时要检测你的窗体是不是处于激活状态,如果处于激活状态那么可以利用API发送回车键,否则不予执行。
这个思路我想应该是对的。我想问一下具体是怎样实现的用什么api?贺兰石能不能用代码指点一下,谢谢!
晕死
那需要这么麻烦
你这样tab的正常功能都没有了
变成以按就激活你的窗口然后回车了
不影响正常使用吗?
二楼的方法就可以实现了!
但前提是一定是将Form的KeyPreview属性设置成Ture