VB6 KeyDown无法取消Keypress

HK1*_*HK1 3 vb6

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

有什么建议?

Mus*_*sis 7

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

Private Sub RTB_KeyPress(KeyAscii As Integer)

    ' "Cancel" the keystroke   
    KeyAscii = 0

End Sub
Run Code Online (Sandbox Code Playgroud)

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

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