Capturer les touches de fonction F1..F12 dans VB.NET

Je ne peut pas capturer les touches de fonction F1..F12 pour mon application. Je suis capable de capturer des touches et des modificateurs tels que maj, ctrl, alt, etc..

Ce question recommande KeyPreview = True, cependant cela ne semble pas fonctionner pour mon application. Ce que je fais mal?

Private Sub Main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Me.KeyPreview = True
    AddHandler Me.KeyDown, AddressOf KeyDownsHandler
    AddHandler Me.KeyUp, AddressOf KeyUpHandler
End Sub

Private Sub KeyUpHandler(ByVal o As Object, ByVal e As KeyEventArgs)
    e.SuppressKeyPress = True
    If e.KeyCode = Keys.F1 Then
        txtMain.AppendText("F1 was pressed!" & Environment.NewLine)
    End If
    txtMain.AppendText( _
        String.Format("'{0}' '{1}' '{2}' '{3}' {4}", e.Modifiers, e.KeyValue, e.KeyData, e.KeyCode, Environment.NewLine))
End Sub

Private Sub KeyDownHandler(ByVal o As Object, ByVal e As KeyEventArgs)
    e.SuppressKeyPress = True
    txtMain.AppendText( _
        String.Format("'{0}' '{1}' '{2}' '{3}' {4}", e.Modifiers, e.KeyValue, e.KeyData, e.KeyCode, Environment.NewLine))
End Sub
Erreur de l'utilisateur :(... je suis à l'aide d'un MicrosoftKeyboard et il exige que la touche F Lock être sur.
C'est Génial. Haha, arrive à tout le monde.

OriginalL'auteur | 2011-01-07