Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

KeyPress et touche 'Suppr'

3 réponses
Avatar
sergio
Bonjour,

je travaille sous VB5.
Lorsqu'un utilisateur appuye sur la touche du clavier 'Suppr', l'évènement
KeyPress n'est pas appelé. Pourquoi ?
Par contre, lorsque j'appuye sur la touche 'Retour arrière' (Chr=8),
l'évènement est bien appelé, et je peux supprimer un caractère.
Comment faire pour appeler l'évènement KeyPress (ou un autre évènement)
lorsqu'on appuye sur la touche 'Suppr' ?
Merci pour votre aide.
Serge

3 réponses

Avatar
Jacques93
Bonjour sergio,
sergio a écrit :
Bonjour,

je travaille sous VB5.
Lorsqu'un utilisateur appuye sur la touche du clavier 'Suppr', l'évènement
KeyPress n'est pas appelé. Pourquoi ?
Par contre, lorsque j'appuye sur la touche 'Retour arrière' (Chr=8),
l'évènement est bien appelé, et je peux supprimer un caractère.
Comment faire pour appeler l'évènement KeyPress (ou un autre évènement)
lorsqu'on appuye sur la touche 'Suppr' ?



Normal, l'événement Keypress ne se déclenche que pour les touches ayant
un code Ascii, comme l'indique son paramètre : KeyAscii As Integer,

ce qui n'est pas le cas de la touche 'Suppr', ainsi que des touches de
déplacement (Flèches, PageUp, PageDown, Home, End ...), des touches
fonctions, etc...

Pour gérer ces touches, il faut utiliser les événement KeyDown et/ou
KeyUp, qui gère un code de touche. Voici la liste des constantes :

<http://msdn2.microsoft.com/en-us/library/aa243025(VS.60).aspx>

Pour des question de lisibilité, il est préférable d'utiliser les noms
de constantes :

'Suppr' : vbKeyDelete
'BackSpace' : vbKeyBack

Tu peux donc tout gérer à partir de KeyDown/KeyUp ou faire un mix avec
Keypress

--
Cordialement,

Jacques.
Avatar
sergio
Merci beaucoup Jacques, cela fonctionne correctement .... et j'ai presque
honte de vous avoir sollicité pour un problème pas bien méchant. Encore merci.
Serge

"Jacques93" wrote:

Bonjour sergio,
sergio a écrit :
> Bonjour,
>
> je travaille sous VB5.
> Lorsqu'un utilisateur appuye sur la touche du clavier 'Suppr', l'évènement
> KeyPress n'est pas appelé. Pourquoi ?
> Par contre, lorsque j'appuye sur la touche 'Retour arrière' (Chr=8),
> l'évènement est bien appelé, et je peux supprimer un caractère.
> Comment faire pour appeler l'évènement KeyPress (ou un autre évènement)
> lorsqu'on appuye sur la touche 'Suppr' ?

Normal, l'événement Keypress ne se déclenche que pour les touches ayant
un code Ascii, comme l'indique son paramètre : KeyAscii As Integer,

ce qui n'est pas le cas de la touche 'Suppr', ainsi que des touches de
déplacement (Flèches, PageUp, PageDown, Home, End ...), des touches
fonctions, etc...

Pour gérer ces touches, il faut utiliser les événement KeyDown et/ou
KeyUp, qui gère un code de touche. Voici la liste des constantes :

<http://msdn2.microsoft.com/en-us/library/aa243025(VS.60).aspx>

Pour des question de lisibilité, il est préférable d'utiliser les noms
de constantes :

'Suppr' : vbKeyDelete
'BackSpace' : vbKeyBack

Tu peux donc tout gérer à partir de KeyDown/KeyUp ou faire un mix avec
Keypress

--
Cordialement,

Jacques.



Avatar
andre.araste
Bonjour

Si j'ai bien compris la question, pour que l'événement KeyPress soit appelé,
il faut que la propriété de la Form soit KeyPreview = True ce qui donne le
priorité au clavier.

KeyPress retourne une variable KeyAscii codée sur 1 seul octet alors que
l'événement KeyDown retourne une variable KeyCode codée sur 2 octets
(Touches de fonction)
-
Bonne réception.

http://perso.orange.fr/andre.araste/
Membre du Club Win's: http://www.clubwins.org
Avertissement: Je ne vends rien.

"sergio" a écrit dans le message de news:

Bonjour,

je travaille sous VB5.
Lorsqu'un utilisateur appuye sur la touche du clavier 'Suppr', l'évènement
KeyPress n'est pas appelé. Pourquoi ?
Par contre, lorsque j'appuye sur la touche 'Retour arrière' (Chr=8),
l'évènement est bien appelé, et je peux supprimer un caractère.
Comment faire pour appeler l'évènement KeyPress (ou un autre évènement)
lorsqu'on appuye sur la touche 'Suppr' ?
Merci pour votre aide.
Serge