如何使秒表不重写线为每个显示

本文关键字:显示 重写 何使秒 | 更新日期: 2023-09-27 17:54:36

我想显示一个秒表,但我不想为每个显示清理我的控制台,

            Stopwatch chrono = new Stopwatch();
            chrono.Start();
            bool isMyComputerOn = true;
            while (isMyComputerOn)
            {
                Console.WriteLine("Time :  "+chrono.Elapsed);
            }

如何使秒表不重写线为每个显示

必须使用SetCursorPosition来固定光标的位置

Stopwatch chrono = new Stopwatch();
chrono.Start();
bool isMyComputerOn = true;
while (isMyComputerOn)
{
   Console.SetCursorPosition(1,1);
   Console.WriteLine("Time : "+chrono.Elapsed);
}

您应该能够实现您想要的东西,如

Console.Write("Time :  "+chrono.Elapsed+"           'r");

可以将Console.CursorLeftConsole.CursorTop属性存储到本地整数变量中。然后在调用Console.WriteLine()之前,使用Console.SetCursorPosition()设置控制台中光标的位置。

的例子:

        Stopwatch chrono = new Stopwatch();
        chrono.Start();
        bool isMyComputerOn = true;
        int cursorCol = Console.CursorLeft;
        int cursorRow = Console.CursorTop;
        while (isMyComputerOn)
        {
            Console.SetCursorPosition(cursorCol, cursorRow);
            Console.WriteLine("Time :  " + chrono.Elapsed);
        }

下面是一个类似问题的答案:

for(int i = 60; i >= 0; i--)
{
Console.Write("'r{0}%   ", i);
}

如何在c# Windows控制台应用程序中更新当前行?