Comment puis-je convertir des e.KeyChar à un véritable caractère de la valeur lors de la manipulation des événements de clavier?
Tout ce que je suis désireux de faire est d'obtenir le caractère réel qui est pressée à chaque fois qu'ils clé est saisi pour l'évènement.
La seule option que je vois est e.KeyChar
qui me donnera la position plutôt que le personnage lui-même.
Ce que je suis désireux de faire est de limiter les valeurs de la pression sur la touche de chiffres entre 0 et 9. La façon dont je suis en train de faire maintenant est juste if((e.KeyChar < 48 || (e.KeyChar > 57)))
Cela semble un peu cher pour juste mettre les valeurs 0 et 9, et j'aimerais savoir comment obtenir la valeur du caractère lui-même plutôt que sa clé.
EDIT: Merci pour l'entrée; donc, en général, il n'y a pas moyen d'aller d'avoir la e.KeyChar
de la valeur à la valeur de l'entrée elle-même.
J'ai vraiment envie de prendre mon cas, e, et l'accès le caractère pressé directement par opposition à l'utilisation de l'e.KeyChar pour obtenir une représentation numérique de la valeur.
winforms cette application est
Ne pas ignorer la touche de retour arrière!
OriginalL'auteur user1993843 | 2013-04-04
Vous devez vous connecter pour publier un commentaire.
Voici un moyen simple de détecter si la touche pressée est un chiffre ou pas:
OriginalL'auteur e.beyer
KeyChar
est unchar
valeur - il est le personnage lui-même - 48 et 57 sont les valeurs ascii pour0
et9
.En C#, vous pouvez vous référer à un personnage à l'aide de son code numérique ASCII, les caractères entre guillemets simples. Par conséquent, votre code peut devenir:
qui est exactement la même chose.
OriginalL'auteur Blorgbeard
e.KeyChar
est lechar
correspondant à la touche enfoncée, pas la position. L' .NET Framework utilisechar
pour représenter un caractère Unicode. Si par "caractère réel de la valeur", tu veux dire que la valeur intégrale de caractères 0-9, et non leurs valeurs Unicode (48-57) vous pouvez le faire:Pour limiter les valeurs de la pression sur la touche de chiffres entre 0 et 9:
Pour une solution plus complète, qui permet de rectifier:
Keys
valeurs sont clavier scan-codes, vous ne pouvez pas (de façon significative) en fonte àchar
valeurs.merci de souligner ce point.
Keys.Back
travaillé, parce queKeys.Back = 8
et retour arrière unicode =U+0008
(8). Cependant,Keys.Delete = 46
et Supprimer unicode =U+007F
(127), il était donc erronée. J'ai mis à jour ma réponse à corriger cette situation.OriginalL'auteur 2Toad