启动下列程序,在窗体上按功能键F1,输出结果为_____.
Print "F1 Down";
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Print "F1 Press";
End Sub
为什么输出结果为F1 Down? 展开
发生KeyPress同时还发生KeyDown和KeyUp,KeyPress是在KeyDown后发生,KeyUp最后发生,这就是这三个的发生顺序。把代码放在什么事件中,是个大学问。这在你想拦截一个按键时,有必要考虑。
所以,你说“为什么输出结果为F1 Down?”,不应该只输出这一个,你的代码应该是按照以下顺序输出两个才对:
第一行显示:F1 Down
第二行显示:F1 Press
你可以自己试验啊,将以下代码复制到默认窗体form1代码框中看看就知道了,为什么是这个顺序,那是没有理由的,vb开发平台就是这样规定的:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Print "F1 Down"
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Print "F1 Up"
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Print "F1 Press"
End Sub
***********************************************************************
你说你还是不行,我刚刚将上述代码复制到form1代码中运行结果给你看看吧(图):