【发布时间】:2019-11-01 16:37:08
【问题描述】:
我可以通过箭头键在控制台上导航。我使用 SetCursorPostion(CursorLeft, CursorTop) 在生成/绘制的“板”上移动,但问题是当我按下例如“DownArrow”时,它将删除/重置当前位置的内容并跳转到下面的位置。
这是一个例子:
static void Main(string[] args)
{
Console.SetCursorPosition(5, 5);
for (int i = 0; i < Console.BufferWidth; i++)
{
for (int n = 0; n < 50; n++)
{
Console.Write("X");
}
}
Console.SetCursorPosition(20, 20);
do
{
ConsoleKey key = Console.ReadKey().Key;
switch (key)
{
case ConsoleKey.UpArrow:
Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop - 1);
break;
case ConsoleKey.DownArrow:
Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop + 1);
break;
case ConsoleKey.RightArrow:
Console.SetCursorPosition(Console.CursorLeft, Console.CursorTop);
break;
case ConsoleKey.LeftArrow:
Console.SetCursorPosition(Console.CursorLeft - 2, Console.CursorTop);
break;
}
} while (true);
}
【问题讨论】:
-
所声称的问题不太可能发生。显示行为的minimal reproducible example(严格使用
Console.WriteLine和Console.SetCursorPosition)会有很大帮助。 -
@Alexei Levenkov 给你
标签: c# console cursor-position