0

こんにちは、x 座標と y 座標を使用してコンソール ウィンドウのさまざまな場所にさまざまな記号を表示する必要がありますが、このConsole.SetCursorPosition()方法を使用することはできません。これは、メソッドで行われた方法です

        string k="$";
        string l="%";

        Console.SetCursorPosition(30, 20);
        Console.Write(k);

        Console.SetCursorPosition(15, 6);
        Console.Write(l);

        Console.ReadLine(); 

メソッドを使用して回避する方法が必要Console.SetCursorPosition()です。多次元配列をループするように扱うように言われましたが、私は前進していません。高度なすべての助けに感謝します

4

1 に答える 1

2

メソッドを置き換える方法はないと思いますSetCursorPositionCursorLeftおよびCursorTopプロパティも)。ただし、何かを行うときにカーソルをウィンドウにジャンプさせたくないことは理解していますWrite。回避策は次のとおりです。

public static void WriteAt(int left, int top, string s){
   int currentLeft = Console.CursorLeft;
   int currentTop = Console.CursorTop;
   Console.CursorVisible = false;//Hide cursor
   Console.SetCursorPosition(left, top);
   Console.Write(s);
   Console.SetCursorPosition(currentLeft, currentTop);
   Console.CursorVisible = true;//Show cursor back
}
//Use it
WriteAt(30, 20, k);
WriteAt(15, 6, l);

ポイントは、位置を変更する前にカーソルを非表示にしてすべての文字列を書き込み、文字列の書き込みが終了したら、カーソルを元の位置に戻して表示することです。

:とにかく、使用を制限する要件SetCursorPosition(ある種のなぞなぞ/挑戦のように見えます:)については、カーソル位置を変更する代わりにいつでもConsole.CursorLeftandを使用できます。Console.CursorTop

于 2013-08-31T17:19:09.570 に答える