Сосредоточиться на KeyDown в VB.NET? - PullRequest
0 голосов
/ 29 января 2012

Я видел похожие вопросы, которые пытаются решить эту проблему, но, похоже, ни один из них не работает для меня до сих пор ...

По сути, для моего первого проекта VB я создаю виртуальную клавиатуру, в которой звук воспроизводится из ресурсов KeyDown. Пока что программа работает, за исключением того факта, что перед нажатием каждой клавиши нужно нажимать мышью на каждую клавишу, нажимая каждую клавишу (и, следовательно, объект находится в фокусе), где мне нужна клавиша для воспроизведения звука без щелкнув по клавиатуре (поместите объект в центр внимания на KeyDown). Ниже приведен пример моего кода:

Private Sub C_KeyDown(ByVal sender As System.Object, ByVal e As PreviewKeyDownEventArgs) Handles C.PreviewKeyDown ' C is the label attached to the first 'Rectangle' (Key)
    If (e.KeyCode = Keys.A) Then 'The A key should activate the C key on the keyboard 
        My.Computer.Audio.Play(My.Resources.C, _
                                   AudioPlayMode.Background)
    End If
End Sub

У меня для KeyPreview установлено значение True в свойствах формы.

Спасибо

1 Ответ

1 голос
/ 29 января 2012

Сначала вы должны установить свойство формы KeyPreview в true.Тогда вы можете использовать событие from KeyDown вместо события отдельных кнопок

Private Sub MyForm_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    Select Case e.KeyCode
        Case Keys.A
            Console.Beep(440, 200)
        Case Keys.B
            Console.Beep(494, 200)
        Case Keys.C
            Console.Beep(523, 200)
    End Select
End Sub
...