读单声道下的小键盘符号

时间:2012-09-24 08:18:40

标签: c# .net mono num-lock

我正在开发一个控制台应用程序,它应该在两个num lock状态下从一个numpad键盘监听数字 - 打开和关闭。该应用程序在带有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案例。有没有解决这个问题?

谢谢!

0 个答案:

没有答案