Wirklich gute Windows Mobile Aplikationen lassen sich auch nur über die Tasten des Geräts bedienen. Leider haben viele neue Geräte z.B. HTC Touch Serie immer weniger Tasten. Beim Entwickeln führt diese Anforderung allerdings zu einigen Schwierigkeiten. Darum eine kleine Serie zu diesem Thema.

Viele Controls im Compact Framework haben hartverdrahtet was beim Drücken einer Taste passiert. Will man dieses Standardverhalten ändern, gibt es eine ganz einfache Möglichkeit beim Formular.

Zuerst muss man beim Form die Eigenschaft KeyPreview auf “true” setzen.  Will man nun das Verhalten bei Keys.Left für alle Controls ändern, braucht man nur ein Paar Zeilen in einem Eventhandler im Formular:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if ((e.KeyCode == Keys.Left))
{
//Do something special
e.Handled = true; // Controls do not get the key
}
}

Das Umsetzen von e.Handled verhindert, daß die Controls auf dem Formular den Tastendruck bekommen.