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;

Kolja Engelmann

Technikfan, Freizeitprogrammierer, selbsternannter Toolking und vermutlich größter Drachenfan Deutschlands blogged hier die Lösungen zu IT-Problemen die ihm über den Weg laufen, kleine Softwaretools, nostalgische Anfälle und missbraucht das Ganze gern auch mal als privates Tagebuch und Fotoalbum.

Das könnte dich auch interessieren …

Eine Antwort

  1. Ali sagt:

    private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
    var i = e.KeyChar – 0x30;
    if (i >= 0 && i <= 9)
    {
    //deine tolle funktion
    }
    }

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert