2011-07-19 85 views
-3

正在製作菜單。我想使用箭頭鍵從我的列表中進行選擇。使用箭頭鍵在控制檯中導航

char move; 

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

我使用錯誤的ascii值的上下鍵嗎?

解決

我取代(炭)_getch()至(INT)_getch()和焦炭移動到int移動 然後38和40 ??和80

+0

是什麼_getch()?我看到C#就像一個標籤。 – Tigran

+0

_getch()是什麼? – hcb

+1

您確定這是C#代碼嗎?根據你對'_getch'的調用,它看起來更像C# –

回答

6

好像你DllImporting MSVCRT.DLL使用_getch()

嘗試使用Console.ReadKey()

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

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

} ... 
1

如果我們在談論一個WinForms應用程序,我會建議您使用Control.KeyDown Event。 「Console.Read()」不適用於WinForms應用程序。

更新 用C#中控制檯應用程序的箭頭鍵進行菜單導航的示例。 >>Sample 1Sample 2

+0

它是控制檯應用程序 –