VB6 KeyDown无法取消按键

VB6 KeyDown无法取消按键,vb6,Vb6,我试图检测用户何时按下文本框中的某些键,然后我想根据他们的按键增加或减少文本中的值,并取消他们按下的键。取消部分不工作。如果我想取消他们的按键,我习惯于输入KeyCode=0,就像我在MS Access中所做的那样。但是,这在VB6中对我不起作用。加号进入文本框 有什么建议吗?我建议忽略KeyDown事件,只使用KeyPress事件: Private Sub RTB_KeyPress(KeyAscii As Integer) ' "Cancel" the keystroke

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


有什么建议吗?

我建议忽略
KeyDown
事件,只使用
KeyPress
事件:

Private Sub RTB_KeyPress(KeyAscii As Integer)

    ' "Cancel" the keystroke   
    KeyAscii = 0

End Sub
不过,最好的方法是将表单的
KeyPreview
属性设置为
True
,然后为表单的
KeyPress
事件添加一个处理程序-这意味着表单有机会首先处理任何击键。通过在此处处理并如上所述取消,您可以随意更改文本框中的文本

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

私有子文本1\u KeyUp(KeyCode为MSForms.ReturnInteger,Shift为Integer) 如果KeyCode=27,则 "条件, 如果结束
结束Sub

谢谢。我目前正致力于移动到VB.NET。只是还没到那里。:)我确实认为这会让我的工作减轻很多痛苦。与我在VB.NET示例中看到的一些东西相比,这个VB6似乎是劳动密集型的。我在VB.NET上工作了一年,然后在C#上工作了5-6年。C#一开始很难,但我很快就了解了相对严格的编译器的好处。可以在.NET Visual Basic之前的版本中编写简单、干净、可靠的代码,但是语言/框架完全不能帮助您实现这一目标。最好格式化代码并添加解释性文本。