Как я могу обнаружить нажатия клавиш в VB.NET? - PullRequest
0 голосов
/ 22 мая 2009

Как сделать так, чтобы VB постоянно проверял нажатия клавиш?
Клавиши обнаружены при пошаговой отладке, но это все: (
Вот мой код нажатия клавиш:

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 голосов
/ 10 января 2014

Эта ссылка может помочь:

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

Также должны быть примеры обнаружения определенных нажатий клавиш с помощью класса KeyEventArgs.

0 голосов
/ 22 мая 2009

Form.KeyPress должен подниматься при каждом нажатии клавиши. Ваш обработчик событий должен вызываться независимо от того, отлаживаетесь вы или нет. Возможно, его называют, но он просто не делает то, что вы ожидаете? Попробуйте поместить некоторые отладочные выходные данные, чтобы убедиться, что вызывается обработчик событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...