我正在开发一个控制台应用程序,它应该在数字锁定状态下监听数字键盘上的数字 - 打开和关闭。该应用程序在带有 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 案例。有解决办法吗?
谢谢!