VB6 KeyDown无法取消Keypress

时间:2011-03-03 01:20:37

标签: vb6

我正在尝试检测用户何时按下文本框中的某些键,然后我想根据其按键增加或减少文本中的值,并取消他们按下的键。取消部分无效。如果我想取消他们的按键,我习惯于只放入KeyCode = 0,就像我在MS Access中那样。但是,这在VB6中对我不起作用。加号进入文本框。

有什么建议吗?

2 个答案:

答案 0 :(得分:7)

我会说忽略KeyDown事件并使用KeyPress事件:

Private Sub RTB_KeyPress(KeyAscii As Integer)

    ' "Cancel" the keystroke   
    KeyAscii = 0

End Sub

执行您正在执行的操作的最佳方法是将表单的KeyPreview属性设置为True,然后为表单的KeyPress事件添加处理程序 - 这意味着表单首先有机会处理任何击键。通过在此处理并按上述方式取消,您可以根据需要更改文本框中的文本。

我在职业生涯的前10年使用了Visual Basic,但我不得不谷歌上面的代码。我建议至少转向VB.NET - 有时甚至可以将VB6项目导入.NET(有时)。

答案 1 :(得分:-1)

私有子Text1_KeyUp(键代码为MSForms.ReturnInteger,Shift为整数) 如果KeyCode = 27,则 '条件 万一 结束