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

Windows Forms Discussion :

[VB.Net] Problème de code


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut [VB.Net] Problème de code
    Salut,
    voilà je voudrai savoir si c'est possible de faire quelque chose du genre :

    if "la touche "a" du clavier est enfoncé" then
    button2.show
    end if

    Merci

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Bien sûr, tu as l'évènement key_down sur ta fenêtre.
    Il te passe en paramètre un objet de type KeyEventArgs qui contient les infos de la touche enfoncée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
            If (e.KeyCode = Keys.A) Then
                '' ...
            End If
        End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Par défaut je crois que c plus souple
    il y'a aussi cette fonction qui permet d'intercepter toutes les touches du clavier meme les touches de commande

    Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean

    Return true
    End Function

    elle permet aussi d'intercepter une touche sur un composant donné.
    par exemple je veut intercepter la touche "entrer" sur un textbox de la fenetre

    alors je fais

    If Me.ActiveControl Is Me.TextBox1 Then
    If msg.WParam.ToInt32() = CInt(Keys.Enter) Then
    ....
    End if
    End if

  4. #4
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 184
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 184
    Par défaut
    Bonjour.

    Je ne voudrais pas lancer une polémique mais la solution de Cardi me semble la plus propre.

    Je m'explique :
    Logiquement tu attends de l'utilisateur qu'il saissise quelque chose au bon endroit (un control, une form) --> ca semble donc logique de gérer l'évènement Keypress sur l'objet concerné.
    De plus, ca structure beaucoup plus le code : si tu as 50 controls dans ton formulaire avec des réactions différentes au Keypress, en utilisant ProcessCmdKey ca va te faire un gros tas de 'IF' pour finalement pas grand chose.

    Autre point, gérer le Keypress sur le controle te permet de créer ou de supprimer le gestionnaire d'évènement concerné en utilisant les AddHandler et les removeHandler.

    A voir donc.

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Par défaut
    Bojour
    Je suis d'accord avec toi, mais une seule chose. je ne suis pas sùr mais je crois que l'evenemt keydown ne capture pas toutes les touches du clavier,et si c'est le cas, on sera forcé d'utiliser cette fonction.
    merci.

Discussions similaires

  1. Problème en code c# .NET
    Par crossidrix dans le forum ADO.NET
    Réponses: 6
    Dernier message: 12/06/2014, 13h37
  2. Réponses: 4
    Dernier message: 03/03/2010, 09h08
  3. [VB.Net] Problème de code
    Par Fullmetal82 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/02/2007, 10h03
  4. [VB.net]problème de conversion de code c# vers VB.net
    Par cladsam dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/10/2005, 14h07
  5. [CR][ASP.NET] Problème d'affichage du rapport
    Par David.V dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 20/04/2004, 12h39

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