In VB.NET 2008, I used the following statement:
MyKeyChr = ChrW(e.KeyCode)
Now I want to convert the above statement into C#.
Any Ideas?
The quick-and-dirty equivalent of ChrW
in C# is simply casting the value to char
:
char MyKeyChr = (char)e.KeyCode;
The longer and more expressive version is to use one of the conversion classes instead, like System.Text.ASCIIEncoding
.
Or you could even use the actual VB.NET function in C# by importing the Microsoft.VisualBasic
namespace. This is really only necessary if you're relying on some of the special checks performed by the ChrW
method under the hood, ones you probably shouldn't be counting on anyway. That code would look something like this:
char MyKeyChr = Microsoft.VisualBasic.Strings.ChrW(e.KeyCode);
However, that's not guaranteed to produce exactly what you want in this case (and neither was the original code). Not all the values in the Keys
enumeration are ASCII values, so not all of them can be directly converted to a character. In particular, casting Keys.NumPad1
et. al. to char
would not produce the correct value.