私は、両方の num ロック状態 (オンとオフ) でテンキー キーボードからの数字をリッスンするコンソール アプリケーションを開発しています。アプリケーションは、Arch Linux と Mono を使用して Raspberry Pi で実行されています。Mono でコンパイルして numlock を永続的にオンにする方法が見つからなかったため、次の方法を使用して num pad コマンドを数字に変換しています。
private string ReadNumPadSymbol(ConsoleKeyInfo keyInfo)
{
char editedSymbol;
switch (keyInfo.Key)
{
case ConsoleKey.Insert:
editedSymbol = '0';
break;
case ConsoleKey.End:
editedSymbol = '1';
break;
case ConsoleKey.DownArrow:
editedSymbol = '2';
break;
case ConsoleKey.PageDown:
editedSymbol = '3';
break;
case ConsoleKey.LeftArrow:
editedSymbol = '4';
break;
case ConsoleKey.Clear:
editedSymbol = '5';
break;
case ConsoleKey.RightArrow:
editedSymbol = '6';
break;
case ConsoleKey.Home:
editedSymbol = '7';
break;
case ConsoleKey.UpArrow:
editedSymbol = '8';
break;
case ConsoleKey.PageUp:
editedSymbol = '9';
break;
default:
return String.Empty;
}
return editedSymbol.ToString();
}
Windows では期待どおりに動作しますが、Linux では、「5」ボタンが押されると、メソッドは空の文字列を返します。なぜかConsoleKey.Clearケースに入らない。これに対する修正はありますか?
ありがとう!