如何让VB不断检查按键?
在逐步调试时检测到了Keypresses,但就是这样:(
到目前为止,这是我的按键代码:
Private Sub Form_Main_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
'Keypress Q, A, or Z if the picture is seen for the first time
'Otherwise one accuracy point is deducted
If e.KeyChar = Chr(97) Then 'key a
If PictureBox.Visible = True Then
If MainArray(X) = 1 Then
Timer_End = TimeOfDay.Millisecond
PictureBox.Image.Dispose()
PictureBox.Image = Nothing
PictureBox.Visible = False
Accuracy = Accuracy + 1
CalcTime()
Else
Timer_End = TimeOfDay.Millisecond
PictureBox.Image.Dispose()
PictureBox.Image = Nothing
PictureBox.Visible = False
Accuracy = Accuracy - 1
CalcTime()
End If
End If
End If
'Keypress for second occurance
If e.KeyChar = Chr(108) Then 'key l
If PictureBox.Visible = True Then
If MainArray(X) = 2 Then
Timer_End = TimeOfDay.Millisecond
PictureBox.Image.Dispose()
PictureBox.Image = Nothing
PictureBox.Visible = False
Accuracy = Accuracy + 1
CalcTime()
Else
Timer_End = TimeOfDay.Millisecond
PictureBox.Image.Dispose()
PictureBox.Image = Nothing
PictureBox.Visible = False
Accuracy = Accuracy - 1
CalcTime()
End If
End If
End If
End Sub
我尝试将其添加到代码中,但它没有帮助:
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Do While PictureBox.Visible = True
Application.DoEvents()
Loop
End Sub
答案 0 :(得分:0)
每次按下一个键时,Form.KeyPress都会被提升。无论您是否正在调试,都应调用您的事件处理程序。也许它正在被召唤,但它只是没有做你期望的事情?尝试使用一些调试输出语句来确认正在调用事件处理程序。
答案 1 :(得分:0)
此链接可能有所帮助:
http://msdn.microsoft.com/en-us/library/system.windows.forms.keyeventargs.aspx#
还应该有通过KeyEventArgs Class检测某些按键的示例。