Website-Icon Digital Native

C# – Convert System.Window.Forms.Key to String

Die Keyboardeingabe mancher Programme fange ich ab, um diese dann weiterzuverarbeiten. Heute wollte ich anhand einer eingegebenen Ziffer den ausgewählten Index einer Listbox ändern.  Die Konvertierung sollte also von System.Windows.Forms.Keys nach int erfolgen. Letztendlich kam ich dann zu dieser Lösung, mit einem Umweg über String.

System.Windows.Forms.KeysConverter _conv = new System.Windows.Forms.KeysConverter();
object _objString = _conv.ConvertTo(_key,typeof(string));
int _result = System.Convert.ToInt32(_objString)

Eine direkte Umwandlung mit ConvertTo(_key,typeof(int)) schmiss nur Exceptions. Ist das aber jetzt die beste Lösung?

Nachtrag:

Sven schrieb mir gerade, dass es auch so geht…alter Hacker 😉 :

int i = _key – 0×30;
if (i >= 0 && i <= 9)
{
    //deine tolle Funktion
}

Done;

Die mobile Version verlassen