How can a line in the console be cleared in C#?
I know how to place the cursor at the beginning of a line:
Console.SetCursorPosition(0, Console.CursorTop);
How can a line in the console be cleared in C#?
I know how to place the cursor at the beginning of a line:
Console.SetCursorPosition(0, Console.CursorTop);
Simplest method would be to move to the start of the line, as you have done, and then write out a string of spaces the same length as the length of the line.
Console.Write(new String(' ', Console.BufferWidth));
Once the last space of a console buffer row is used, the console cursor automatically jumps to the next line.
Reset cursor back onto the line that was just cleared
while (true)
{
Console.Write(".");
if (Console.CursorLeft + 1 >= Console.BufferWidth)
{
Console.SetCursorPosition(0, Console.CursorTop);
Console.Write(Enumerable.Repeat<char>(' ', Console.BufferWidth).ToArray());
Console.SetCursorPosition(0, Console.CursorTop - 1);
}
if (Console.KeyAvailable)
break;
}
(Combining at.toulan and Andrew's answers here.)
Simplest is, to overwrite over the last line:
Console.SetCursorPosition(0, Console.CursorTop - 1)
Console.WriteLine("new line of text");
If "new line of text" is shorter than the text that was there before, write spaces before writing your text, like Andrew says.
After setting the cursor position, you can use backspace:
do { Console.Write("\b \b"); } while (Console.CursorLeft > 0);
Well i think most of the answers here arent really that robust.
I guess this is solved allready but yk:
private static void ClearPrint(string msg)
{
Console.WriteLine($"\r{msg}{new String(' ', Console.BufferWidth - msg.Length)}");
}