在我的 VB6 程序中,我有大量的热键,例如 X、A、D... ETC 。我还有一个聊天系统,每次我使用字符 X 或 A 时,它都会执行这些热键的操作。例如,如果 X 是要关闭应用程序(不是真的这样做),当我在聊天文本框中输入“修复”时,它会关闭应用程序。任何人都可以告诉我在输入时如何禁用热键,除了 Enter 键吗?
谢谢,
凯文
在我的 VB6 程序中,我有大量的热键,例如 X、A、D... ETC 。我还有一个聊天系统,每次我使用字符 X 或 A 时,它都会执行这些热键的操作。例如,如果 X 是要关闭应用程序(不是真的这样做),当我在聊天文本框中输入“修复”时,它会关闭应用程序。任何人都可以告诉我在输入时如何禁用热键,除了 Enter 键吗?
谢谢,
凯文
在 chatTextBox
的GotFocus
事件中设置一个标志来禁用你的热键。TextBox
然后在'LostFocus
事件中重新启用它们。
我不知道您是如何捕获热键的,但是设置标志的代码非常简单:
Private suppressHotkeys As Boolean
Private Sub txtChat_GotFocus()
suppressHotkeys = True
End Sub
Private Sub txtChat_LostFocus()
suppressHotkeys = False
End Sub
然后在捕获热键的代码中,只需检查标志:
If (Not suppressHotkeys) Then
//process hotkey
End If
对热键使用组合键可能会更好。按说Ctrl+X或Alt+更为常见X。您可以在 KeyDown 或 KeyUp 事件中测试它们。
If KeyCode = vbKeyX And (Shift And vbCtrlMask = vbCtrlMask) Then
' Do something
End If