VB6 KeyDown无法取消按键
我试图检测用户何时按下文本框中的某些键,然后我想根据他们的按键增加或减少文本中的值,并取消他们按下的键。取消部分不工作。如果我想取消他们的按键,我习惯于输入KeyCode=0,就像我在MS Access中所做的那样。但是,这在VB6中对我不起作用。加号进入文本框VB6 KeyDown无法取消按键,vb6,Vb6,我试图检测用户何时按下文本框中的某些键,然后我想根据他们的按键增加或减少文本中的值,并取消他们按下的键。取消部分不工作。如果我想取消他们的按键,我习惯于输入KeyCode=0,就像我在MS Access中所做的那样。但是,这在VB6中对我不起作用。加号进入文本框 有什么建议吗?我建议忽略KeyDown事件,只使用KeyPress事件: Private Sub RTB_KeyPress(KeyAscii As Integer) ' "Cancel" the keystroke
有什么建议吗?我建议忽略
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之前的版本中编写简单、干净、可靠的代码,但是语言/框架完全不能帮助您实现这一目标。最好格式化代码并添加解释性文本。