2011-07-19 17 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値を使用していますか?

iは移動intに(INT)_getch()およびCHAR移動する(チャー)_getchを()に置き換え

を解決し 次いで38及び40 ??しますそして80

+0

)(_getch何ですか?私はC#がタグのように見える。 – Tigran

+0

_getch()には何がありますか? – hcb

+1

これはC#のコードですか? '_getch'へのあなたの呼び出しに基づき、それはCのようになります。 –

答えて

6

あなたが_getchを(使用するようにMSVCRT.DLLをDllImportingしているように思える)

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

それはコンソールアプリです –