console.SetCursorPosition方法的替代方案

时间:2013-08-31 17:01:09

标签: c# arrays loops console-application

您必须使用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()方法。任何替代方案将有助于我被告知使用它像循环通过多维数组,但我没有取得进展。非常感谢先进的所有帮助

1 个答案:

答案 0 :(得分:2)

我认为您没有任何方法可以替换SetCursorPositionCursorLeftCursorTop属性)。但是我知道你不希望当你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.CursorLeft和{ {1}}改为改变光标位置。