如何为每个显示器制作没有重写线的秒表

时间:2014-03-27 15:44:49

标签: c# .net console stopwatch

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

            Stopwatch chrono = new Stopwatch();
            chrono.Start();

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

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

你应该能够用

这样的东西达到你想要的效果
Console.Write("Time :  "+chrono.Elapsed+"           \r");

答案 2 :(得分:0)

您可以将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);
        }

答案 3 :(得分:-1)

以下是类似问题的答案:

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

How can I update the current line in a C# Windows Console App?