Bonjour,
J'utilise VB.net 2010 et J'ai crée un form qui contient plusieurs bouton.Et après la sélection d'un bouton je veux si je click sur le flèche droit du clavier la sélection se déplace vers le bouton a droite, si je click sur le flèche haut du clavier la sélection se déplace vers le bouton en haut.
J'ai essayé avec le code si dessous mais quelque soit le fleche il suit l'ordre du tabindex.
Est il possible de desactiver le tabindex? ou y a t il d autre solution?
Et j'ai trouvé dans google cette solution mais je ne sait pas comment l'adapter avec mon code ci dessous qui est expliqué avec le paragraphe en rouge

KeyPreview ne fonctionne que pour InputKeys. Certaines touches (tels que les flèches, Tab, Entrée, ...) sont considérés comme "spéciaux" et exigent des clés pré-traitement. Normalement, ces touches sont utilisées pour naviguer à travers les contrôles d'un formulaire qui peut recevoir le focus (flèches et les touches Tab) ou d'exécuter la méthode par défaut du contrôle (Ex.: la touche Entrée effectuera l'événement click d'un bouton).
Toutes les catégories sur la base des System.Windows.Forms.Control disposer d'une méthode de protection Overridable nommé IsInputKey qui renvoie true si la clé spécifiée est une clé d'entrée régulier, sinon fausse. Si elle retourne false, l'événement clé n'est pas envoyé par la forme même lorsque KeyPreview a la valeur True.
Pour éviter cela, vous pouvez sous-classe et un bouton (ou dans votre contrôle utilisateur) créer une méthode de substitution IsInputKey qui retourne vrai pour toutes les touches dont vous avez besoin et voici le code a adapter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Protected Overrides Function IsInputKey(ByVal keyData As System.Windows.Forms.Keys) As Boolean
Select Case keyData
Case Keys.Up, Keys.Down, Keys.Left, Keys.Right, Keys.Enter, Keys.Tab
Return True
End Select
End Function
:


Merci de m'aider

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Private Sub btn1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles button1.KeyDown
 
        If e.KeyCode = Keys.Down Then
           Button2.Select()
        End If
        If e.KeyCode = Keys.Right Then
            Button4.Select()
        End If
        If e.KeyCode = Keys.Enter Then
            Me.Hide()
            form3.Show()
        End If
    End Sub