1

在我的 VB6 程序中,我有大量的热键,例如 X、A、D... ETC 。我还有一个聊天系统,每次我使用字符 X 或 A 时,它都会执行这些热键的操作。例如,如果 X 是要关闭应用程序(不是真的这样做),当我在聊天文本框中输入“修复”时,它会关闭应用程序。任何人都可以告诉我在输入时如何禁用热键,除了 Enter 键吗?

谢谢,

凯文

4

2 回答 2

1

在 chatTextBoxGotFocus事件中设置一个标志来禁用你的热键。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
于 2009-12-30T16:51:18.573 回答
0

对热键使用组合键可能会更好。按说Ctrl+XAlt+更为常见X。您可以在 KeyDown 或 KeyUp 事件中测试它们。

If KeyCode = vbKeyX And (Shift And vbCtrlMask = vbCtrlMask) Then
    ' Do something
End If
于 2009-12-30T18:04:42.940 回答