OVH Cloud OVH Cloud

Utilisation de keypreview dans une form

7 réponses
Avatar
Driss HANIB
Bonjour à tous

Voici mon problème,

je veux déclencher des boutons comprenant les lettres de l'alphabet (un
lettre par bouton bien entendu) pour charger la liste de clients
correspondants à l'initiale choisie
la première chose est bien l'appui sur chaque bouton. tout est ok et géré
donc pas de problème.
je voudrai rajouter la 'fonctionalité' de choisir par l'intermédiaire du
clavier le bouton à cliquer

je sais qu'il faut mettre la propriété 'Keyprview' de la feuille concernée à
vrai.
Pour ne pas interférer avec les autres boutons dont les Hotkeys se déclenche
avec la séquence <ALT> + Lettre,
je veux utiliser la séquence <CTRL> + Lettre
Or j'ai un problème pour récupérer l'association : si je n'appuie pas de
manière simultanée sur les deux touches , dans l'évènement KeyDown, un seul
est pris en compte et les deux paramètres ne sont pas remplis en même temps
donc pas de réponse : KeyCode et schift.

Quelqu'un peut il me dire comment faire pour recevoir l'information complète
<CTRL>+Lettre pour pouvoir agir ensuite sur le bouton correspondant.

Merci

Driss

7 réponses

Avatar
Jacques93
Driss HANIB a écrit :
Bonjour à tous

Voici mon problème,

je veux déclencher des boutons comprenant les lettres de l'alphabet (un
lettre par bouton bien entendu) pour charger la liste de clients
correspondants à l'initiale choisie
la première chose est bien l'appui sur chaque bouton. tout est ok et géré
donc pas de problème.
je voudrai rajouter la 'fonctionalité' de choisir par l'intermédiaire du
clavier le bouton à cliquer

je sais qu'il faut mettre la propriété 'Keyprview' de la feuille concernée à
vrai.
Pour ne pas interférer avec les autres boutons dont les Hotkeys se déclenche
avec la séquence <ALT> + Lettre,
je veux utiliser la séquence <CTRL> + Lettre
Or j'ai un problème pour récupérer l'association : si je n'appuie pas de
manière simultanée sur les deux touches , dans l'évènement KeyDown, un seul
est pris en compte et les deux paramètres ne sont pas remplis en même temps
donc pas de réponse : KeyCode et schift.

Quelqu'un peut il me dire comment faire pour recevoir l'information complète
<CTRL>+Lettre pour pouvoir agir ensuite sur le bouton correspondant.

Merci

Driss





Essaie avec l'événement KeyUp, tu auras par exemple

KeyCode = 65 (A) et Shift = 2 (Ctrl)

puis, lors du relachement de touche

KeyCode = 17 et Shift = 0 , là tu ignores


--
Cordialement,

Jacques.
Avatar
Driss HANIB
donc c'est plutot keyUp qu'il faut utiliser ?

Dans deuxième séquence de touche
c'est un exemple ou bien elle apparaît également ?



"Jacques93" a écrit dans le message de
news:
Driss HANIB a écrit :
> Bonjour à tous
>
> Voici mon problème,
>
> je veux déclencher des boutons comprenant les lettres de l'alphabet (un
> lettre par bouton bien entendu) pour charger la liste de clients
> correspondants à l'initiale choisie
> la première chose est bien l'appui sur chaque bouton. tout est ok et


géré
> donc pas de problème.
> je voudrai rajouter la 'fonctionalité' de choisir par l'intermédiaire du
> clavier le bouton à cliquer
>
> je sais qu'il faut mettre la propriété 'Keyprview' de la feuille


concernée à
> vrai.
> Pour ne pas interférer avec les autres boutons dont les Hotkeys se


déclenche
> avec la séquence <ALT> + Lettre,
> je veux utiliser la séquence <CTRL> + Lettre
> Or j'ai un problème pour récupérer l'association : si je n'appuie pas de
> manière simultanée sur les deux touches , dans l'évènement KeyDown, un


seul
> est pris en compte et les deux paramètres ne sont pas remplis en même


temps
> donc pas de réponse : KeyCode et schift.
>
> Quelqu'un peut il me dire comment faire pour recevoir l'information


complète
> <CTRL>+Lettre pour pouvoir agir ensuite sur le bouton correspondant.
>
> Merci
>
> Driss
>
>

Essaie avec l'événement KeyUp, tu auras par exemple

KeyCode = 65 (A) et Shift = 2 (Ctrl)

puis, lors du relachement de touche

KeyCode = 17 et Shift = 0 , là tu ignores


--
Cordialement,

Jacques.


Avatar
Jacques93
Bonjour Driss HANIB,
Driss HANIB a écrit :
donc c'est plutot keyUp qu'il faut utiliser ?

Dans deuxième séquence de touche
c'est un exemple ou bien elle apparaît également ?




Oui, elle apparait. Si on prend <Ctrl>A, par exemple avec

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Debug.Print KeyCode; Shift
End Sub

tu appuie sur <Ctrl> :
rien ne se passe,
tu appuie sur A :
rien ne se passe
tu relaches A :
Keycode = 65, Shift = 2
tu relaches <Ctrl>
KeyCode = 17 Shift = 0

Si tu mets le même code dans KeyDown, tu peux avoir une succession de
KeyCode = 17 Shift = 2
puis une succession de,
Keycode = 65, Shift = 2
en fonction de la vitesse de répétition du clavier.

--
Cordialement,

Jacques.
Avatar
driss hanib
merci Jacques93,

je vais appliquer cela
je te tiens au courant

Driss
"Jacques93" a écrit dans le message de news:

Bonjour Driss HANIB,
Driss HANIB a écrit :
donc c'est plutot keyUp qu'il faut utiliser ?

Dans deuxième séquence de touche
c'est un exemple ou bien elle apparaît également ?




Oui, elle apparait. Si on prend <Ctrl>A, par exemple avec

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Debug.Print KeyCode; Shift
End Sub

tu appuie sur <Ctrl> :
rien ne se passe,
tu appuie sur A :
rien ne se passe
tu relaches A :
Keycode = 65, Shift = 2
tu relaches <Ctrl>
KeyCode = 17 Shift = 0

Si tu mets le même code dans KeyDown, tu peux avoir une succession de
KeyCode = 17 Shift = 2
puis une succession de,
Keycode = 65, Shift = 2
en fonction de la vitesse de répétition du clavier.

--
Cordialement,

Jacques.


Avatar
driss hanib
Nickel Jacques93,

c'est tout bon..
je l'ai dès à présent intégré dans mon prog..

Bon conseil que tu m'as donné, comme à ton habitude
Merci

Driss
"Jacques93" a écrit dans le message de news:

Bonjour Driss HANIB,
Driss HANIB a écrit :
donc c'est plutot keyUp qu'il faut utiliser ?

Dans deuxième séquence de touche
c'est un exemple ou bien elle apparaît également ?




Oui, elle apparait. Si on prend <Ctrl>A, par exemple avec

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Debug.Print KeyCode; Shift
End Sub

tu appuie sur <Ctrl> :
rien ne se passe,
tu appuie sur A :
rien ne se passe
tu relaches A :
Keycode = 65, Shift = 2
tu relaches <Ctrl>
KeyCode = 17 Shift = 0

Si tu mets le même code dans KeyDown, tu peux avoir une succession de
KeyCode = 17 Shift = 2
puis une succession de,
Keycode = 65, Shift = 2
en fonction de la vitesse de répétition du clavier.

--
Cordialement,

Jacques.


Avatar
Jacques93
Bonsoir driss hanib,
driss hanib a écrit :
Nickel Jacques93,

c'est tout bon..
je l'ai dès à présent intégré dans mon prog..

Bon conseil que tu m'as donné, comme à ton habitude
Merci




N'exagérons rien, de temps en temps, ou parfois, restons modeste :-D
En tout cas merci :-)

--
Cordialement,

Jacques.
Avatar
Driss HANIB
Non non je persiste car je regarde tout ce qui passe et je pense que tu fais
partie de ceux qui enrichissent perpetuellement cette liste
En espérant que toi aussi tu trouves des infos qui t'intéressent..

Driss


"Jacques93" a écrit dans le message de
news:
Bonsoir driss hanib,
driss hanib a écrit :
> Nickel Jacques93,
>
> c'est tout bon..
> je l'ai dès à présent intégré dans mon prog..
>
> Bon conseil que tu m'as donné, comme à ton habitude
> Merci
>

N'exagérons rien, de temps en temps, ou parfois, restons modeste :-D
En tout cas merci :-)

--
Cordialement,

Jacques.