您必须使用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()
方法。任何替代方案将有助于我被告知使用它像循环通过多维数组,但我没有取得进展。非常感谢先进的所有帮助
答案 0 :(得分:2)
我认为您没有任何方法可以替换SetCursorPosition
(CursorLeft
和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.CursorLeft
和{ {1}}改为改变光标位置。