如何检测VB.NET中的按键?

时间:2009-05-22 17:55:24

标签: vb.net keypress

如何让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

2 个答案:

答案 0 :(得分:0)

每次按下一个键时,Form.KeyPress都会被提升。无论您是否正在调试,都应调用您的事件处理程序。也许它正在被召唤,但它只是没有做你期望的事情?尝试使用一些调试输出语句来确认正在调用事件处理程序。

答案 1 :(得分:0)

此链接可能有所帮助:

http://msdn.microsoft.com/en-us/library/system.windows.forms.keyeventargs.aspx#

还应该有通过KeyEventArgs Class检测某些按键的示例。