专注于VB.NET中的KeyDown?

时间:2012-01-29 17:29:48

标签: .net vb.net winforms focus keydown

我已经看到类似的问题试图解决这个问题,但到目前为止似乎没有一个对我有用......

基本上,对于我的第一个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 个答案:

答案 0 :(得分:1)

首先,您必须将表单属性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