から MSDN-Dokumentation über den Tasten Aufzählung :
Die Klasse Keys enthält Konstanten für die Verarbeitung von Tastatureingaben. Die Mitglieder der Keys-Aufzählung bestehen aus einem Tastencode und einer Reihe von Modifikatoren, die in einem einzigen Integer-Wert zusammengefasst sind. In der Win32-Anwendungsprogrammierschnittstelle (API) besteht ein Tastenwert aus zwei Hälften, wobei die höherwertigen Bits den Tastencode enthalten (der dem virtuellen Tastencode von Windows entspricht) und die niederwertigen Bits Tastenmodifikatoren wie die SHIFT-, CONTROL- und ALT-Tasten darstellen.
Umrechnung dieser Konstanten in char ist sinnlos, da Sie wertvolle Informationen verlieren und die konstanten Werte nicht den ASCII-Zeichencodes entsprechen.
から MSDN über die SchlüsselZeichen ざい KeyPressEventArgs :
Sie können die folgenden Schlüssel nicht erhalten oder setzen (...) INSERT und DELETE (...)
SchlüsselZeichen gibt die char Wert (ASCII-Zeichencode), der der gedrückten Taste entspricht, und nicht den (rohen) Tastencode. Daher können Sie verschiedene Sondertasten nicht erkennen und den Wert nicht mit dem Tasten Aufzählungskonstanten.
Verwenden Sie die KeyCode ざい KeyEventArgs stattdessen. Da es vom Typ Tasten no char ist es für Ihren Zweck gut geeignet. Um auf diese Informationen zuzugreifen, müssen Sie die KeyDown Ereignis statt des KeyPress Veranstaltung.
Übrigens, nach Angaben der MSDN-Seite über das Kontrolle KeyPress Veranstaltung wird dieses Ereignis für Nicht-Zeichen-Tasten überhaupt nicht ausgelöst:
Das KeyPress-Ereignis wird von Nicht-Zeichen-Tasten nicht ausgelöst; die Nicht-Zeichen-Tasten lösen jedoch die KeyDown- und KeyUp-Ereignisse aus.