C# console.SetCursorPosition方法的替代方法
您好,我必须使用x和y坐标在控制台窗口的不同位置显示各种符号,但是我不允许使用C# console.SetCursorPosition方法的替代方法,c#,arrays,loops,console-application,C#,Arrays,Loops,Console Application,您好,我必须使用x和y坐标在控制台窗口的不同位置显示各种符号,但是我不允许使用console.SetCursorPosition()方法。这就是使用该方法的方式 string k="$"; string l="%"; Console.SetCursorPosition(30, 20); Console.Write(k); Console.SetCursorPosition(15, 6); Cons
console.SetCursorPosition()
方法。这就是使用该方法的方式
string k="$";
string l="%";
Console.SetCursorPosition(30, 20);
Console.Write(k);
Console.SetCursorPosition(15, 6);
Console.Write(l);
Console.ReadLine();
我需要一种使用
Console.SetCursorPosition()
方法的方法。任何替代方案都会有帮助,我被告知使用它就像在多维数组中循环一样,但我没有取得任何进展。非常感谢advanced中的所有帮助我认为您没有任何方法可以替换SetCursorPosition
(还有CursorLeft
和CursorTop
属性)。但是,我知道当你写东西时,你不希望光标跳到窗口上。以下是一个供您选择的解决方案:
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
和Console.CursorTop
来更改光标位置。看看这是否真的很有帮助。顺便说一下,是的,这个问题是我的编程教授提出的挑战