Bonjour J'ai de la difficulté à afficher un formulaire lorsqu'un ensemble de touches spécifique est enfoncé. Le formulaire principal s'exécute en premier; c'est une seconde forme qui est censée être cachée jusqu'à ce que vous basculiez en appuyant sur ctrl + alt + shift + h. C'est le code que j'ai, je crois que cela devrait fonctionner, mais ce n'est pas le cas. Je l'ai essayé comme ça, dans une minuterie qui vérifie les événements de presse tous les 1 millisecondeVB bascule sous forme spécifique avec des événements de presse de touche
Private Sub tmrKeys_Tick(sender As Object, e As EventArgs) Handles tmrKeys.Tick
Dim key As String = Nothing
If My.Computer.Keyboard.AltKeyDown AndAlso My.Computer.Keyboard.CtrlKeyDown AndAlso My.Computer.Keyboard.ShiftKeyDown AndAlso key = "H" Then
Dim x = New form2()
x.Show()
End If
End Sub
Et j'ai essayé aussi une fonction séparée comme ceci:
Private Sub form1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.Control AndAlso e.Alt AndAlso e.Shift AndAlso e.KeyCode = Keys.H Then
form2.Show()
End If
End Sub
Nous vous remercions à l'avance pour l'aide.
Vous ne devriez absolument pas utiliser 'Timer'. Pas en aucune circonstance. La première question est de savoir si vous voulez que cette combinaison de touches ne fonctionne que pendant que votre formulaire principal a le focus ou indépendamment de ce que la fenêtre a le focus. Si c'est ce dernier, vous devez utiliser l'API Windows pour enregistrer un raccourci clavier. Pour le premier, votre deuxième extrait de code est correct mais le formulaire ne déclenchera pas cet événement 'KeyDown' par défaut s'il contient des contrôles sélectionnables. Pour obtenir une telle forme pour élever des événements keybaod, vous devez définir sa propriété 'KeyPreview' à' True'. – jmcilhinney
Il doit être basculé lorsque les touches sont enfoncées, quel que soit le focus du formulaire. – gregknight
Dans ce cas, la gestion des événements du formulaire est inutile car ces événements ne peuvent pas être déclenchés si le formulaire n'a pas de focus. Vous devriez regarder dans l'API 'RegisterHotKey'. Vous serez en mesure de trouver beaucoup d'exemples avec une recherche. Assurez-vous simplement que vous utilisez des exemples spécifiques VB.NET ou que vous apportez les modifications appropriées aux exemples VB6. – jmcilhinney