0

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

谢谢!

4

0 回答 0