【问题标题】:C#, SetCursorPosition deletes previous Positions content on the consoleC#,SetCursorPosition 删除控制台上以前的 Positions 内容
【发布时间】: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.WriteLineConsole.SetCursorPosition)会有很大帮助。
  • @Alexei Levenkov 给你

标签: c# console cursor-position


【解决方案1】:

好的,我所要做的就是在 Console.ReadKey().Key 中输入“true”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2020-01-12
    • 2013-07-18
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多