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

我认为您没有任何替换方法SetCursorPosition(还有CursorLeftandCursorTop属性)。但是我知道您不希望光标在您执行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.CursorLeftandConsole.CursorTop来更改光标位置。

于 2013-08-31T17:19:09.570 回答