Obtenir Char de Key
Je suis le codage d'un éditeur de texte personnalisé, et je l'utilise KeyDown et KeyUp événements. Que les événements obtient un KeyEventArgs de paramètres, où une "Clé" de l'instance est inclus.
Comment je peux transformer cette "Clé" pour un vrai char?
L'Aide De La Touche.ToString() avec un "." Je reçois un "OmePeriod" ou avec "," je reçois un "OmeComma". Je peux les transformer en valeurs directement...mais C'est un dur travail, et je suis sûr qu'il doit exister quelque classe que de les transformer en une des Clés de la véritable "char".
Merci!
Ce qui concerne.
source d'informationauteur Jesús Galindo | 2011-09-06
Vous devez vous connecter pour publier un commentaire.
Le principal problème ici est que si vous êtes de rattrapage est reel événement de clavier et que la clé est en effet une clé et PAS un personnage. Entre le clavier ! Par exemple, lorsque vous tapez shift-A, vous recevrez deux cas au lieu d'un pour keypressed.
cette discussion peut aider : C# Comment traduire virtuel de mot de code de char?
Au lieu d'utiliser le
KeyDown
cas, essayez d'utiliser leTextInput
événement. Associer un gestionnaire d'événement qui ressemble à ceci:Noter, il saisit seulement le premier octet, et ce ne sera pas de travail international (Unicode) le texte. Il peut ne pas fonctionner pour les plus complexes de la saisie de texte événements, afin d'être avisé!
Voir cet article MSDN pour plus d'info.
Cela vous donne exactement ce dont vous avez besoin .... que trop de paramètres régionaux spécifiques de caractères à partir du Clavier du code de Clé ...
comment faire pour capturer le caractère '#' sur des paramètres régionaux différents claviers en WPF/C#?
Utiliser le KeyEventArgs.Clé propriété et le suivant: Comment faire pour convertir un caractère de Système équivalent.De Windows.D'entrée.Clé Enum valeurmais utilisez plutôt la commande suivante: KeyInterop.VirtualKeyFromKey Méthode
Fonte de l'e.KeyValue de char. comme par exemple:
par exemple.