Wie kann man feststellen, ob ein Schlüssel ein Buchstabe oder eine Zahl ist?

8

KeyboardState.GetPressedKeys() gibt% co_de zurück % Array der aktuell gedrückten Tasten. Normalerweise würde ich Key herausfinden, wenn ein Schlüssel ein Buchstabe oder eine Zahl ist Der angegebene Typ ist der Char.IsLetterOrDigit(char) -Enumeration und hat daher keine Keys -Eigenschaft.

Casting funktioniert auch nicht, weil zum Beispiel Schlüssel wie KeyChar , wenn sie an ein Zeichen übergeben werden, zum Buchstaben Keys.F5 werden. In diesem Fall würde t dann als ein Buchstabe oder eine Ziffer angesehen, wenn dies eindeutig nicht der Fall ist.

Also, wie könnte man feststellen, ob ein gegebener F5 Aufzählungswert ein Buchstabe oder eine Ziffer ist, da das Umsetzen auf ein Zeichen unvorhersagbare Ergebnisse liefert?

    
Ryan Peschel 26.02.2012, 18:56
quelle

3 Antworten

12
%Vor%     
max 26.02.2012, 19:07
quelle
2

Wenn "Ziffernschlüssel" bestimmten Bereichen innerhalb der Aufzählung Keys entsprechen, können Sie nicht einfach überprüfen, ob Ihr Schlüssel zu einem der Bereiche gehört?

%Vor%     
Douglas 26.02.2012 19:14
quelle
0

Lassen Sie Ihre eigene Tabelle / Gruppe von HashSets den% type% enumerationen zuordnen, an denen Sie interessiert sind.

Es gibt nur ungefähr hundert verschiedene Werte - der Tisch wird also nicht zu groß sein. Wenn Sie sich Gedanken über die Größe im Speicher machen, ist dies ein Byte pro Aufzählungswert (wenn Sie ein Byte-Array verwenden, das mit Keys -Werten indiziert ist).

    
Alexei Levenkov 26.02.2012 19:06
quelle

Tags und Links