Textbox eingaben auf Zahlen beschränken

Eigentlich ist das Grundproblem immer das Gleiche. Benutzereingaben müssen überprüft werden. Nun ist leider in WinRT XAML die InputValidation und damit auch Regular Expression als Prüfmöglichkeit aktuell nicht vorhanden. Also muss man auf die guten alten Tastatureingaben zurückgreifen. Das passende Event der Textbox ist KeyDown. Folgender Code reduziert die Eingaben rein auf Zahlen (Alphanumerisch). Für alle unerwünschten Tastatur Ereignisse wird die Behandlung abgebrochen.

 Private Sub TextBox_KeyDown_1(sender As Object, e As KeyEventArgs)
        If e.Key >= Windows.System.VirtualKey.Number0 And e.Key <= Windows.System.VirtualKey.Number9 Then
        Else

            e.Handled = True
        End If

Windows 8 arbeitet nicht mit Keycodes, sondern Virtual Keys. Die Sondertasten werden über die Eventargs z.B. e.Key.RightShift abgefragt.

Etwas schwieriger geht das mit ALT und STRG. ALT kann man meines Wissens nach gar nicht abfangen.

Für die STRG Taste muss  man einen kleinen Umweg nehmen.

Dim ctrl = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control)
If ctrl = Windows.UI.Core.CoreVirtualKeyStates.Down Then

End If

Kommentar schreiben