Quel est l'équivalent C # de ChrW (e.KeyCode)?
Dans VB.NET en 2008, j'ai utilisé la déclaration suivante:
MyKeyChr = ChrW(e.KeyCode)
Maintenant je veux convertir la déclaration ci-dessus en C#.
Des Idées?
source d'informationauteur Paramu
Vous devez vous connecter pour publier un commentaire.
Ressemble le C# équivalent serait
Cependant,
e.KeyCode
ne contient pas de Unicode codepoint, de sorte que cette conversion est dénuée de sens.Le quick-and-dirty équivalent de
ChrW
en C# est tout simplement un moulage de la valeur àchar
:La plus longue et la plus expressive de la version de la conversion des classes au lieu de cela, comme
System.Texte.ASCIIEncoding
.Ou vous pouvez même utiliser le VB.NET fonction en C# par l'importation de la
Microsoft.VisualBasic
espace de noms. C'est vraiment nécessaire si vous êtes en s'appuyant sur de contrôles effectués par lesChrW
méthode sous le capot, vous ne devriez probablement pas compter sur de toute façon. Ce code devrait ressembler à quelque chose comme ceci:Cependant, ce n'est pas garanti pour produire exactement ce que vous voulez dans ce cas (ni le code d'origine). Pas toutes les valeurs dans la
Keys
énumération sont des valeurs ASCII, afin de ne pas tous d'entre eux peuvent être directement converti en caractère. En particulier, le castingKeys.NumPad1
et. al. pourchar
ne serait pas produire de la valeur correcte.Le plus littéral façon de traduire le code est à utiliser l'VB.Net exécution de la fonction à partir de C#
Si vous voulez éviter une dépendance sur le VB.Net runtime si vous pouvez utiliser cette version tronquée en bas