-3

メニューを作っています。矢印キーを使用してリストから選択したい。

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 に移動し、次に 38 と 40 を ?? に置き換えました。そして80

4

2 に答える 2

6

_getch() を使用するために msvcrt.dll を DllImporting しているようです

Console.ReadKey() を使用してみてください

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

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

} ...
于 2011-07-19T11:41:16.250 に答える
1

WinForms アプリケーションについて話している場合は、Control.KeyDown Eventを使用することをお勧めします。「Console.Read()」は WinForms アプリケーションでは機能しません。

C# のコンソール アプリケーションの矢印キーによるメニュー ナビゲーションの例を更新します。>>サンプル1 サンプル2

于 2011-07-19T11:33:42.083 に答える