Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
973 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [RESOLU]KeyDown_Event - comment retourner une combinaison de touches

 

Sujet(s) à lire :
 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]KeyDown_Event - comment retourner une combinaison de touches

n°2034282
BSS_Scof
Posté le 05-11-2010 à 15:45:06  profilanswer
 

Bonjour,
 
Premièrement je tiens à vous faire savoir que j'ai longuement recherché une solution à mon problème avant de venir vous demander conseil.
Je travail sur MS Access 2007.
 
Voici mon problème :
 
Je travail sur l'élaboration d'un formulaire tout ce qu'il y a de plus basique.
Mon problème est vraiment d'ordre fonctionnel.
 
Sur ce formulaire j'ai placé une Texte_Box.
Celle-ci à pour source un champ "Mémo" de ma base de donnée.
 
Et ce que je souhaiterais,  
c'est que l'utilisateur puisse taper son texte en incluant des retours à la ligne sans devoir passer par un CTRL+ENTER
 
En d'autres mots, je voudrais attribuer à la touche ENTER la fonction CTRL+ENTER.
 
Je me suis donc intéressé à l'évènement KeyDown de la Texte_Box concernée.

Citation :

Private Sub Texte_Box_KeyDown(KeyCode As Integer, Shift As Integer)
      MsgBox (Shift & " " & KeyCode)
End Sub


Je n'en suis pas à ma première base de donnée sous access mais je ne suis pas non plus un crack :)
 
Voici les quelques pistes que j'ai essayé :
 
Dans un premier temps avec la MsgBox() j'ai pu m'apercevoir que  
KeyCode représente la valeur de la touche saisie  
et que Shift représente le "Modifieur" enfoncé lorsqu'on appui sur la touche
 
Quand CTRL est enfoncé, Shift = 2
J'ai donc essayé ce code :

Citation :

Private Sub Texte_Box_KeyDown(KeyCode As Integer, Shift As Integer)
      If KeyCode = 13 Then
           Shift = 2
      End If
      MsgBox (Shift & " " & KeyCode)
End Sub


Sur le principe ça avait l'air aussi simple que ça... Mais finalement non :non:  
Pourtant avec ce code la MsgBox() me renvoie les même valeurs lorsque j'appuie sur ENTRER et lorsque je fais CTRL+ENTER sans le code.
 
J'ai aussi essayer un code un peu plus... sale...

Citation :

Private Sub Texte_Box_KeyDown(KeyCode As Integer, Shift As Integer)
      Dim chaine As String
      If KeyCode = 13 Then
           chaine = Me.Texte.Value
           chaine = chaine & vbCrLf
           Me.Texte.Value = chaine
      End If
      MsgBox (Shift & " " & KeyCode)
End Sub


J'obtiens bien un retour à la ligne après mon texte... Néanmoins tout le texte est sélectionné et je ne peux donc pas continuer à écrire.  
J'ai abandonné cette mauvaise idée car cela fait un traitement très lourd pour pas grand chose et ce n'est pas vraiment esthétique comme code...
 
Sur Google, j'ai vu que beaucoup parlais d'un "fameux" SendKeys().
Fameux entre guillemets car les avis divergent énormément sur la fiabilité de cette fonction.
Quoi qu'il en soit, j'ai cru comprendre qu'elle n'était plus disponible sous Access 2007 donc pas de problème...
 
Sur les mêmes conversation j'ai entendu parler d'une fonction API SendInput().
Elle remplirait apparemment les même fonctions...
Mais je n'ai trouver aucun exemple concret de son utilisation. Et je n'ai jamais eu l'occasion d'utiliser des fonctions API Windows auparavant...
Je suis donc coincé.


Message édité par BSS_Scof le 19-11-2010 à 10:36:36
mood
Publicité
Posté le 05-11-2010 à 15:45:06  profilanswer
 

n°2037090
Xxxaaavvv
Posté le 19-11-2010 à 09:37:46  profilanswer
 

Dans les propriétés d'une zone de texte, t'as une propriété "Effet touche Entrée"
 
de rien :o

n°2037100
BSS_Scof
Posté le 19-11-2010 à 10:35:05  profilanswer
 

Ah oui en effet... Je ne l'avais pas vu, merci à toi.
Bonne journée.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [RESOLU]KeyDown_Event - comment retourner une combinaison de touches

 

Sujets relatifs
Écouter les touches du clavier"Ecouter" les touches du clavier sans cliquer dans l'animation avant
Récupérer une valeur retournée par une fonction appellée par un event[PERL?] interface texte avec gestion des touches directionnelles
[Qt] retourner les indice d'une cellule d'un QTableWidgetPasser un argument à travers un Event handler
Calendrier dynamique: Infobulle dans un "event"[Résolu] Python 2.6, MySQLdb et Windows, la combinaison perdante ?
simulation de touches[VBA] Détection des touches
Plus de sujets relatifs à : [RESOLU]KeyDown_Event - comment retourner une combinaison de touches


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR