2

当我的光标在我的文本框上并且我按下按钮“+”时,我的文本框的值必须增加 1

所以我尝试的是使用 MouseMove 但问题在于我无法使用函数 OnkeyPress 中的函数 KeyAscii

If KeyAscii = vbKeyL Then
    Stock.Value = Stock.Value + 1
End If

如果您有任何想法,您可以自由发布!提前谢谢。

4

3 回答 3

2

正确答案是:在表单中将 Key preview 设置为 Yes,启用文本框:False

而不是在 keyDown 事件中:

Select Case KeyCode
        Case vbKeyAdd

             Stock.Value = Stock.Value + 1
    End Select
于 2013-06-20T14:48:46.887 回答
1

怎么样

if KeyAscii = vbKeyAdd Then // vb KeyAdd is the key code constant for the '+' key
     Stock.Value = Stock.Value + 1
End If

尝试像这样声明它

Dim key as KeyAscii

然后像这样改变你的代码

Dim key as KeyAscii
if key = vbKeyAdd Then // vb KeyAdd is the key code constant for the '+' key
         Stock.Value = Stock.Value + 1
    End If

这是所有 vba 密钥代码的列表

http://msdn.microsoft.com/en-us/library/aa243025(v=vs.60).aspx

希望这可以帮助

于 2013-06-20T12:30:52.737 回答
0

您可以使用文本框的MouseMove事件和KeyPress事件来执行此操作。

使用MouseMove事件,您可以知道鼠标何时位于文本框上方。如果是,请将全局变量设置为 True,并在它离开时(当它到达文本框的边框时)将其设置为 False。

然后在表单KeyPress事件上,检查您的全局变量是否为真,如果是,则检查 KeyAscii 值。

于 2013-06-20T13:19:05.773 回答