使用箭头键在控制台中导航

时间:2011-07-19 11:26:16

标签: c# arrow-keys

我正在制作菜单。我想用箭头键从我的列表中选择。

char move;

do
{
    move = (char)_getch();
    if (move == 38)
    {
         // Move Indicator Up   
    }
    else if (move == 40)
    {
         // Move Indicator Down
    }
}
while (move != 13);

我是否使用了向上和向下键的错误ascii值?

解决

我将(char)_getch()替换为(int)_getch()并将char移动到int move  那么38和40到??和80

2 个答案:

答案 0 :(得分:6)

好像你是DllImporting msvcrt.dll来使用_getch()

尝试使用Console.ReadKey()

ConsoleKeyInfo keyInfo = Console.ReadKey();
if (keyInfo.Key == ConsoleKey.UpArrow) {

} else if (keyInfo.Key == ConsoleKey.DownArrow) {

} ...

答案 1 :(得分:1)

如果我们讨论的是WinForms应用程序,我会建议您使用Control.KeyDown Event。 “Console.Read()”不适用于WinForms应用程序。

<强>更新 使用C#中控制台应用程序的箭头键进行菜单导航的示例。 &GT;&GT; Sample 1 Sample 2