none
Se servir des touches du clavier à la place de la souris en VB 2010 RRS feed

  • Question

  • j'aimerais   me  servir  des   touches   du  clavier  à  la   place   de  la  souris   pour   faire   un  jeu   d'apprentissage   du  clavier  mais   pour   le  moment    je  tourne   en  rond   sans   resultat  .

    Qui   pourrait   me   donner  un  exemple   avec   le   "a"  et  le  "z"pour  qu'en   appuyant   sur   les  touches   cela   corresponde  à  un   click1 et  click2

    merci  par  avance 

    Dan



    • Modifié rocdan13 mardi 26 février 2013 06:54
    mardi 26 février 2013 05:18

Réponses

  • Bonjour,

    Dans les propriétés de la fenêtre, il suffit de mettre la propriété KeyPreview à True.
    Ensuite traiter l'événement KeyPress sur le formulaire et vous pouvez récupérer la touche (caractère saisi) via le code suivant :

        Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles MyBase.KeyPress
            MessageBox.Show(e.KeyChar)
        End Sub
    Cordialement

    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse rocdan13 jeudi 28 février 2013 06:07
    mercredi 27 février 2013 07:16
    Modérateur
  • Bonjour Dan,

    Je n'arrive pas à faire balader le curseur de souris, je pensais ça plus simple, tu peux mettre une pictureBox avec l'image d'un curseur :

    '
    ' déplace image par clavier form1
    Option Explicit On
    Public Class Form1
    
      Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' FORM1 + PICTUREBOX1
        Width = 400
        Height = 200
        Left = 100
        Top = 100
        PictureBox1.Width = 20 ' sert de curseur et peut contenir sans bord une image de curseur
        PictureBox1.Height = 20
        PictureBox1.BorderStyle = BorderStyle.Fixed3D
        PictureBox1.BackColor = Color.Red
        Call centre()
      End Sub
    
      Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        MsgBox("H = haut, B = bas, G = gauche, D = droite, C = centre" & vbLf & vbLf & "Majuscule ou minuscule", vbInformation)
      End Sub
    
      Sub centre()
        PictureBox1.Left = Width / 2 - PictureBox1.Width / 2
        PictureBox1.Top = (Height - 30) / 2 - PictureBox1.Height / 2
      End Sub
    
      Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress
        Select Case Asc(e.KeyChar)
          Case 72, 104 : PictureBox1.Top = PictureBox1.Top - 1 ' H = haut
          Case 66, 98 : PictureBox1.Top = PictureBox1.Top + 1 ' B = bas
          Case 71, 103 : PictureBox1.Left = PictureBox1.Left - 1 ' G = gauche
          Case 68, 100 : PictureBox1.Left = PictureBox1.Left + 1 ' D = droit
          Case 67, 99 : Call centre()
        End Select
      End Sub
    
    End Class
    

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    • Marqué comme réponse rocdan13 jeudi 28 février 2013 10:40
    mercredi 27 février 2013 09:04

Toutes les réponses

  • Bonjour,

    Oui mais... il faut au moins savoir de quel endroit part le curseur, ensuite ce ne sont pas touches les touches mais seulement 4 qui suffisent ?

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mardi 26 février 2013 20:15
  • merci   Ehjoe  de  t'occuper   de  moi   :   je  pensais    que  finalement   c'etait    infaisable .je   te   joins  ma  precedente  version   avec   la  souris à  ton   adresse   Email   là   je  ne  sais  pas  comment  faire pour  envoyer  le  concepteur.

    pour  les   touches   a    ou  A   c'est  suffisant   tu  me  fais   pour   A   et  Z  stp    et    je   fais    le   reste  en   suivant   l'exemple  si  j'arrive   hiiiiiiiiiii

    Cordialement  Dan

    mercredi 27 février 2013 05:08
  • Bonjour,

    Dans les propriétés de la fenêtre, il suffit de mettre la propriété KeyPreview à True.
    Ensuite traiter l'événement KeyPress sur le formulaire et vous pouvez récupérer la touche (caractère saisi) via le code suivant :

        Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles MyBase.KeyPress
            MessageBox.Show(e.KeyChar)
        End Sub
    Cordialement

    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse rocdan13 jeudi 28 février 2013 06:07
    mercredi 27 février 2013 07:16
    Modérateur
  • Bonjour Dan,

    Je vais voir, mais t'a pas besoin de déplacer réellement la souris, suffit de déplacer un curseur dans une image, et gille a indiqué comment récupérer la touche appuyée.

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mercredi 27 février 2013 07:54
  • Bonjour Dan,

    Je n'arrive pas à faire balader le curseur de souris, je pensais ça plus simple, tu peux mettre une pictureBox avec l'image d'un curseur :

    '
    ' déplace image par clavier form1
    Option Explicit On
    Public Class Form1
    
      Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' FORM1 + PICTUREBOX1
        Width = 400
        Height = 200
        Left = 100
        Top = 100
        PictureBox1.Width = 20 ' sert de curseur et peut contenir sans bord une image de curseur
        PictureBox1.Height = 20
        PictureBox1.BorderStyle = BorderStyle.Fixed3D
        PictureBox1.BackColor = Color.Red
        Call centre()
      End Sub
    
      Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        MsgBox("H = haut, B = bas, G = gauche, D = droite, C = centre" & vbLf & vbLf & "Majuscule ou minuscule", vbInformation)
      End Sub
    
      Sub centre()
        PictureBox1.Left = Width / 2 - PictureBox1.Width / 2
        PictureBox1.Top = (Height - 30) / 2 - PictureBox1.Height / 2
      End Sub
    
      Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress
        Select Case Asc(e.KeyChar)
          Case 72, 104 : PictureBox1.Top = PictureBox1.Top - 1 ' H = haut
          Case 66, 98 : PictureBox1.Top = PictureBox1.Top + 1 ' B = bas
          Case 71, 103 : PictureBox1.Left = PictureBox1.Left - 1 ' G = gauche
          Case 68, 100 : PictureBox1.Left = PictureBox1.Left + 1 ' D = droit
          Case 67, 99 : Call centre()
        End Select
      End Sub
    
    End Class
    

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    • Marqué comme réponse rocdan13 jeudi 28 février 2013 10:40
    mercredi 27 février 2013 09:04
  • Merci    Gilles    ça    fonctionne   parfaitement

    Cordialement  

    Dan

    jeudi 28 février 2013 06:09
  • Pour   le  moment   je   ne  vois  pas   trop   ce  que   tu  veux    faire  mais  je  vais   ressayer

    cordialement  Joe

    Dan 

    jeudi 28 février 2013 06:15
  • ça   sert   à   faire  bouger   "  l'image  "  ( curseur)  avec   4   touches :

    ça 

    fonctionne  bien

    Merci  Joe

    jeudi 28 février 2013 10:46