Zastępuję ProcessCmdKey
, a gdy otrzymam argument Keys
, chcę sprawdzić, czy ten Keys
jest literą lub cyfrą lub symbolem specjalnym.Sprawdź, czy klucz jest literą/cyfrą/symbolem specjalnym
Mam ten fragment
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
char key = (char)keyData;
if(char.IsLetterOrDigit(key)
{
Console.WriteLine(key);
}
return base.ProcessCmdKey(ref msg, keyData);
}
wszystko działa dla liter i cyfr. ale po naciśnięciu F1-F12 konwertuje je na litery.
Może ktoś zna lepszy sposób na rozwiązanie tego zadania?
Problem polega na tym, że rzucasz 'keyData' na postać. Nie możesz tego zrobić. Aby uzyskać te informacje, musisz użyć stałych zdefiniowanych w wyliczeniu 'Keys'. –
Może być możesz spróbować http://stackoverflow.com/questions/887377/how-do-i-get-a-list-of-all-the-printable-characters-in-c –