chouchou270403
Messages postés46Date d'inscriptionmercredi 1 février 2006StatutMembreDernière intervention30 octobre 2007
-
30 août 2006 à 12:12
palm56
Messages postés8Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention20 juin 2007
-
31 janv. 2007 à 16:44
Bonjour à tous,
Voilà j'explique mon cas lol
Je suis en train de faire un programme récapitulatif de tout ce que je vois à l'école, et pour cela j'ai fais un groupe de boutons nommé Command1 et qui va jusque Command1(15), en masque de saisie pour que l'on puisse naviguer avec les flèches sur chaque bouton sans utiliser la souris. Ce que j'aimerais pouvoir faire, c'est qu'une fois que je suis sur un des bouton par exemple le deuxième, et que je tape sur Enter, une form s'ouvre. Mon masque de saisie avec flèche fonctione mais je ne sais comment faire pour faire ouvrir la form par rapport à l'événement Key return.
J'espère avoir était claire, merci à tous pour votre aide...
P.S : voici mon code pour le masque de saisie vous comprendrez peut-être mieux...
Private Sub Command1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 30 août 2006 à 12:34
Violent Ken
Salut !
J'ai compris l'histoire du "masque de saisie", mais il faut savoir que si tu n'as que des composants Command, Checkbox...., bref, des composants qui ne comportent pas de zone de saisie de texte, tu peux naviguer entre eux avec les flèches sans ajouter aucun code à ton programme (automatiquement).
La tabulation permet, elle, de naviguer entre tout les composants, quels qu'ils soient.
Shift+Tab permet le retour sur le composant d'avant (inverse de Tab).
Concernant l'appui sur la touche entrée, il faut récupérer la valeur de KeyCode.
Dans ce cas, la valeur correspondant à "Entrée" est la constante VbKeyReturn.
Le code sera donc :
Private Sub Command1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then form2.Show
End Sub
MAIS il faut savoir que la touche entrée a un comportement spécifique sur un Commad. De ce fait, cette touche ne peut pas être captée de cette manière.... Par contre, si tu désires changer de touche :
-Espace actionne le Command
-N'importe quelle autre touche possède une valeur spécifique, à savoir :
Code des touches
Constante,
Valeur,
Description,
----
vbKeyLButton,
1,
Bouton gauche de la souris,
----
vbKeyRButton,
2,
Bouton droit de la souris,
----
vbKeyCancel,
3,
Touche ANNUL,
----
vbKeyMButton,
4,
Bouton central de la souris,
----
vbKeyBack,
8,
Touche RET.ARR,
----
vbKeyTab,
9,
Touche TAB,
----
vbKeyClear,
12,
Touche EFFACER,
----
vbKeyReturn,
13,
Touche ENTRÉE,
----
vbKeyShift,
16,
Touche MAJ,
----
vbKeyControl,
17,
Touche CTRL,
----
vbKeyMenu,
18,
Touche MENU,
----
vbKeyPause,
19,
Touche PAUSE,
----
vbKeyCapital,
20,
Touche VERR.MAJ,
----
vbKeyEscape,
27,
Touche ÉCHAP.,
----
vbKeySpace,
32,
Touche ESPACE,
----
vbKeyPageUp,
33,
Touche PG PRÉC.,
----
vbKeyPageDown,
34,
Touche PG SUIV.,
----
vbKeyEnd,
35,
Touche FIN,
----
vbKeyHome,
36,
Touche ORIGINE,
----
vbKeyLeft,
37,
Touche FLÈCHE VERS LA GAUCHE,
----
vbKeyUp,
38,
Touche FLÈCHE VERS LE HAUT,
----
vbKeyRight,
39,
Touche FLÈCHE VERS LA DROITE,
----
vbKeyDown,
40,
Touche FLÈCHE VERS LE BAS,
----
vbKeySelect,
41,
Touche SELECT,
----
vbKeyPrint,
42,
Touche IMPR.ÉCRAN,
----
vbKeyExecute,
43,
Touche EXÉCUTE,
----
vbKeySnapshot,
44,
Touche INSTANTANÉ,
----
vbKeyInsert,
45,
Touche INSER,
----
vbKeyDelete,
46,
Touche SUPPR.,
----
vbKeyHelp,
47,
Touche AIDE,
----
vbKeyNumlock,
144,
Touche VERR.NUM
Les constantes KeyA à KeyZ sont identiques à leurs équivalents ASCII : 'A' à 'Z'
Constante,
Valeur,
Description,
----
vbKeyA
,
65,
Touche A,
----
vbKeyB,
66,
Touche B,
----
vbKeyC,
67,
Touche C,
----
vbKeyD,
68,
Touche D,
----
vbKeyE,
69,
Touche E,
----
vbKeyF,
70,
Touche F,
----
vbKeyG,
71,
Touche G,
----
vbKeyH,
72,
Touche H,
----
vbKeyI,
73,
Touche I,
----
vbKeyJ,
74,
Touche J,
----
vbKeyK,
75,
Touche K,
----
vbKeyL,
76,
Touche L,
----
vbKeyM,
77,
Touche M,
----
vbKeyN,
78,
Touche N,
----
vbKeyO,
79,
Touche O,
----
vbKeyP,
80,
Touche P,
----
vbKeyQ,
81,
Touche Q,
----
vbKeyR,
82,
Touche R,
----
vbKeyS,
83,
Touche S,
----
vbKeyT,
84,
Touche T,
----
vbKeyU,
85,
Touche U,
----
vbKeyV,
86,
Touche V,
----
vbKeyW,
87,
Touche W,
----
vbKeyX,
88,
Touche X,
----
vbKeyY,
89,
Touche Y,
----
vbKeyZ,
90,
Touche Z
Les constantes Key0 à Key9 sont identiques à leurs équivalents ASCII : '0' à '9
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 31 janv. 2007 à 16:33
Violent Ken
Salut, euh oui, bien sur, "Entrée" est évidemment récupérée dans l'evenement KeyDown (je l'ai d'ailleurs moi même dit "Dans ce cas, la valeur correspondant à "Entrée" est la constante VbKeyReturn")
Je pense que j'ai voulu dire que vbKeyTab n'est pas récupérée quand on a plusieurs controles qui peuvent prendre le focus avec la tabulation.
Exemple, mettre une textbox dans une form et appuyer sur Tab en étant dessus et avec ce code
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyTab Then MsgBox "ok"
End Sub
> détecte l'appui de la touche