Можно ли отображать строку в фиксированной позиции при изменении содержимого в консольном приложении? - PullRequest
1 голос
/ 10 ноября 2019

Можно ли отобразить значение переменной в фиксированной позиции в консольном приложении C # Windows, чтобы оно было видимым, в то время как содержимое экрана в противном случае вывело бы каждое старое значение вверх и не показывалось, чтобы не печататьзначения снова и снова в новых строках?

Я знаю о Curses, но хотел бы использовать любой стандарт, если он существует, и узнать, как это сделать.

Спасибо за ваше время и помощь.

1 Ответ

1 голос
/ 10 ноября 2019

Console.SetCursorPosition - это метод каркаса, необходимый для позиционирования каретки в определенной точке окон консоли. Конечно, установка точки затем перемещает все последующие записи в консоль, начиная с новой точки, поэтому, если вы хотите записать что-либо в точную позицию, а затем перезапустить с предыдущей точки, вам необходимо также обработать положение предыдущей записи. .

Это всего лишь пример для начала работы

static void Main()
{
    for (int x = 0; x < 100; x++)
    {
        if (x % 10 == 0)
            Console.SetCursorPosition(0, 0);
        else
            Console.SetCursorPosition(0, x % 10);
        Console.WriteLine(x);
        WriteStatusText("Printing line " + x);

        // Remove this comment to see it slowly 
        // Console.ReadLine();


    }
    Console.ReadLine();
}


static void WriteStatusText(string msg)
{
    Console.SetCursorPosition(0, 10);
    Console.WriteLine(msg);
}

Имейте в виду, что установка позиции вне области буфера ( Console.BufferWidth и Console.BufferHeight), определенный для консоли, вызовет исключение

...