IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Touche raccourci sur boutons


Sujet :

VB.NET

  1. #1
    Invité
    Invité(e)
    Par défaut Touche raccourci sur boutons
    Bonjour
    J'ai un menu avec 4 boutons, chaque bouton ouvre un nouveau formulaire. Je souhaiterai créer des touches de raccourcis pour chacun de ces boutons. Le soucis c'est qu'il y a toujours un bouton qui a le focus et donc l'événement sera executé que sur le bouton qui a le focus. J'ai pourtant essayé de désactivé le focus sur tous les boutons et tenter de le donner à mon form (me.activate) mais il y a toujours un bouton focused.

    Ce que je voudrais arriver à faire c'est qu'au chargement du menu , aucun boutons n'aient le focus mais seulement mon form, et d'avoir donc une méthode sur le form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub menu_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
            Si j'appuie sur 1 alors ouvrir form1
            FinSi
     
     End Sub
    PS: l'application est sur un PDA.

  2. #2
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Tu peux fixer le .tabstop à false en mode design --> empêche la prise du focus à l'ouverture de la form.
    Le soucis c'est que si tu veux te déplacer par Tabulation ou touche de déplacement, ça ne marchera plus.

    Il y a une ruse --> tu remets le TabStop à true dans l'event Load de la Form.

    Le mieux c'est de faire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        Private Sub Form4_Load(ByVal sender As Object, ByVal e As  System.EventArgs) Handles Me.Load
            Me.Button1.TabStop = False
            Me.Button2.TabStop = False
            Me.Button3.TabStop = False
        End Sub
        Private Sub Form4_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
            Me.Button1.TabStop = True
            Me.Button2.TabStop = True
            Me.Button3.TabStop = True
        End Sub
    Par contre, je ne comprends pas trop ta problématique de traitement des entrées clavier...
    Au pire, si tu n'as que des boutons, tu peux directement trapper l'événement keydown pour chacun d'eux dans la form.

    Un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Option Strict On
    Public Class Form4
     
        Private Sub Form4_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Me.Button1.TabStop = False
            Me.Button2.TabStop = False
            Me.Button3.TabStop = False
        End Sub
     
        Private Sub Form4_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
            For Each c As Control In Me.Controls
                If c.GetType Is GetType(Button) Then
                    AddHandler c.KeyDown, AddressOf processKeyDown
                End If
            Next
            AddHandler Me.KeyDown, AddressOf processKeyDown
        End Sub
        Private Sub processKeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
            Select Case e.KeyCode
                Case Keys.A
                    Me.Button1.Select()
                    e.Handled = True
                Case Keys.B
                    Me.Button2.Select()
                    e.Handled = True
                Case Keys.C
                    Me.Button3.Select()
                    e.Handled = True
            End Select
            e.Handled = False
        End Sub
     
    End Class
    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup le tabstop a résolu mon problème! mais le shown n'existe pas sur le compact framework .
    Dernière modification par Invité ; 30/01/2008 à 00h41.

Discussions similaires

  1. raccourci clavier sur bouton
    Par zoidy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/08/2007, 15h34
  2. raccourci sur un bouton
    Par Angelique_Abac dans le forum Delphi
    Réponses: 4
    Dernier message: 08/06/2007, 17h22
  3. affecter touche de raccourci à un bouton
    Par piotrr dans le forum Tkinter
    Réponses: 7
    Dernier message: 30/05/2007, 15h17
  4. Raccourci sur touche F10 - étrange comportement
    Par hulahup dans le forum Windows Forms
    Réponses: 5
    Dernier message: 22/04/2007, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo