Code pour action de touche clavier

Signaler
Messages postés
7
Date d'inscription
dimanche 17 avril 2011
Statut
Membre
Dernière intervention
30 avril 2011
-
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
-
Bonsoir à tous !

J'ai cherché sur google, j'ai pas réussi à trouver ce que je cherchai. Enfait, je fais une application où je voudrais que quand l'utilisateur appui par exemple sur la touche "2" ça fasse telle action. Je cherche donc le code pour indiquer que lorsque la personne va cliquer sur tel touche, ça va faire telle action.
Enfait, je cherche ce genre de code :
 Private Sub BoutonVirg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BoutonVirg.Click

mais pour une touche.

Merci d'avance à tous et bonne soirée =)

13 réponses

Messages postés
14759
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 janvier 2021
151
Bonjour,

Et tu bloques sur quoi ?
Donnes plus d'info, on ne peut pas t'aider en restant aussi vague.

Messages postés
7
Date d'inscription
dimanche 17 avril 2011
Statut
Membre
Dernière intervention
30 avril 2011

bah en fait, j'ai besoin du code. Par exemple, là le bout de code que j'ai mit indique que lorsqu'on appui sur le bouton virgule de l'application ça va faire telle action. Moi j'aimerai avoir le code pour indiquer l'action a faire lorsque j'appuie par exemple sur la touche "a" de mon clavier
Messages postés
14759
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 janvier 2021
151
Bonjour,

Je vais reformuler :
Tu veux que quand on appuie sur le bouton, ça envoie une virgule dans une textbox ?

TextBox.Text+=","

Messages postés
7
Date d'inscription
dimanche 17 avril 2011
Statut
Membre
Dernière intervention
30 avril 2011

non, ça c'est déjà fait, avec un bouton que j'ai mit du côté visuel. Maintenant, je veux donner une action aux touches du clavier
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
bonsoir,
tu devrais regarder les évènements KeyPress,KeyDown...
petit exemple:
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        If e.KeyChar = "a"c Then
            MessageBox.Show("voici a!!")
        End If
    End Sub


réagis quand on appuie sur la touche 'a' et bah voilà!!

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Messages postés
7
Date d'inscription
dimanche 17 avril 2011
Statut
Membre
Dernière intervention
30 avril 2011

Merci de vos réponse en tout cas mais j'ai adapté le code à ma situation, ça ne marche pas ^^
    Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        If e.KeyChar = "1"c Then
            Me.TextBox1.Text = Me.TextBox1.Text & "1"
        End If
    End Sub


Voilà le code, et quand j'appuie sur ma touche 1, rien ne se passe =/
Messages postés
14759
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 janvier 2021
151
Bonjour,

Et avec KeyPreview (propriété) de la form à True ?

Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
essaie avec KeyDown comme ceci:
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.NumPad1 Then
            MessageBox.Show("vbfre")
        End If

'ou en connaissant le code ASCII de la touche à appuyer...en l'occurence 97 pour la touche "1" du clavier numérique
        If e.KeyValue = 97 Then
            MessageBox.Show("vbfre")
        End If
    End Sub


Bonne continuation!!
Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
1
et puis comme NHenry te l'as suggéré,n'oublies pas de mettre la propriété KeyPreview de ta form à True.

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Messages postés
7
Date d'inscription
dimanche 17 avril 2011
Statut
Membre
Dernière intervention
30 avril 2011

Euh, désolé mais ça ne donne toujours rien =/
Messages postés
7
Date d'inscription
dimanche 17 avril 2011
Statut
Membre
Dernière intervention
30 avril 2011

Désolé du double post, j'ai pas compris le message :
Et avec KeyPreview (propriété) de la form à True ?
Messages postés
14759
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 janvier 2021
151
Bonjour,

Normalement, dans les propriétés de la Form, il devrait y avoir une qui s'appelle KeyPreview ou un truc du genre (je n'ai pas l'IDE d'ouvert).
Tu la mets à True, normalement, ça déclenche l'event KeyPress de la Form même si un autre contrôle à le focus.

Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
Essaie de tester sur une nouvelle Form.
Au niveau du code, tu essaies le code ci-dessous.
Tu devrais entendre un Beep en appuyant sur n'importe quelle touche.

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.KeyPreview = True
    End Sub

    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Beep()
    End Sub

End Class


Ensuite, tu modifies l'évènement KeyDown de façon à ce qu'il ne réagisse qu'à l'enfoncement de la touche "1" du clavier :

   Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyValue = Keys.NumPad1 Then
            MessageBox.Show("Touche 1 enfoncée")
        End If
    End Sub