Wie Sie feststellen, ob eine Taste einen Buchstaben oder eine Zahl?
KeyboardState.GetPressedKeys()
gibt eine Key
array der aktuell gedrückten Tasten. Normalerweise, um herauszufinden, ob eine Taste einen Buchstaben oder eine Zahl, die ich benutzen würde Char.IsLetterOrDigit(char)
aber die vorliegende Art ist der Keys
enumeration und als Ergebnis hat keine KeyChar
Eigenschaft.
Casting funktioniert entweder nicht, weil, zum Beispiel, der Schlüssel wie Keys.F5
, wenn die gegossenen Buchstaben werden die Buchstaben t
. In diesem Fall F5
würde dann sehen, wie ein Buchstabe oder eine Ziffer, wenn klar ist es nicht.
So, wie könnte man feststellen, ob eine gegebene Keys
enumeration value ist ein Buchstabe oder eine Ziffer, gegeben, dass das casting zu einem Charakter gibt unvorhersehbare Ergebnisse?
- Sie möchten die F5-Taste markiert werden als eine Zahl oder ein Buchstabe?
- Schauen Sie hier, stackoverflow.com/questions/5718541/...
- Nein. Das problem ist, dass wenn
Keys.F5
angeheuert, um ein Zeichen es wirdt
.Keys.F5
scheitern soll, ist die Buchstaben oder eine Zahl zu testen. - Diesem thread aus der MSDN XNA-Foren, die weiterhelfen können.
- sind Sie interessiert an Buchstaben, die würde eingegeben werden, wenn die Taste gedrückt wird, oder immer nur englische Buchstaben entsprechen direkt
Keys
? Wenn ehemalige Kamil link bietet einen guten Ansatz. - Ein Schlüssel ist ein Schlüssel, und nicht eine Zahl oder einen Buchstaben. Es gibt keine einfache Zuordnung zwischen Tasten und Zeichen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
ä
?Gegeben, dass "Ziffer-Tasten" entsprechen spezifische Bereiche innerhalb der
Keys
Aufzählung, könnte man nicht nur überprüfen, ob Ihr Schlüssel gehört zu einer der Bereiche?Haben Ihren eigenen Tisch/set von HashSets für anzeigen
Keys
enumeration Typen interessiert sind.Gibt es nur etwa hundert verschiedene Werte, damit die Tabelle nicht zu groß sein. Wenn Sie besorgt über die Größe im Speicher - es wird ein byte pro enumeration value (wenn Sie ein byte-array indiziert durch
Keys
Werte).