为什么在调试时,KeyPress 与 KeyUp事件都设置了中断,但是调试时,只有KeyPress 运行,而KeyUp不运行(实际运行了,但是程序在在那儿停)
为什么在调试时,KeyPress 与 KeyUp事件都设置了中断,但是调试时,只有KeyPress 运行,而KeyUp不运行(实际运行了,但是程序在在那儿停) --------------------编程问答-------------------- 你所说的应该是不可能的--------------------编程问答-------------------- 事件响应顺序应该是:KeyDown、KeyPress、KeyUp
你可以测试如下代码,看看Debug.Print的先后就知道了
--------------------编程问答-------------------- 在键盘鼠标事件中不要设置断点、弹出msgbox,会导致事件丢失的。 --------------------编程问答-------------------- 应该像2楼说的那样,用debug调试,或者干脆写文件记录日志。 --------------------编程问答--------------------
Option Explicit
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print "KeyDown"
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Debug.Print "KeyPress"
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Debug.Print "KeyUp"
End Sub
你可以试一下喽 --------------------编程问答--------------------
你自己先弄清楚。 -_-!!!
在IDE下运行时,程序窗体中的控件捕获到KeyPress()事件后被中断时,前台窗口立即切换到IDE窗口了。
它就再也无法触发KeyUp()事件了(因为它切换完窗口时,你按下的Key还没UP)。
--------------------编程问答-------------------- 你真要跟踪这两个事件的代码,你可以先把KeyPress()的代码调试好。
然后取消KeyPress()里面的断点,就能捕获到KeyUp()事件了。 --------------------编程问答-------------------- KeyDown、KeyPress、KeyUp 都属于焦点相关事件。
中断后 VB-IDE 获得焦点,程序失去焦点后就不会有后续事件了。
调试焦点相关事件要用 Debug.Print,不要用中断。
补充:VB , 基础类