Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deleting previously written lines in Console

Tags:

c#

console

Is there anyway to delete certain parts of a console window using the (Left,Top) coordinates used with Console.SetCursorPosition()?

Could you make a custom method for it?

like image 645
user377419 Avatar asked Dec 29 '22 11:12

user377419


1 Answers

Silky's comment is the right answer:

  • Set an appropriate background colour
  • Loop for each line you wish to clear part of:
    • Set the cursor position to left hand side
    • Write out a string of spaces of the right width

For example:

public static void ClearArea(int top, int left, int height, int width) 
{
    ConsoleColor colorBefore = Console.BackgroundColor;
    try
    {
        Console.BackgroundColor = ConsoleColor.Black;
        string spaces = new string(' ', width);
        for (int i = 0; i < height; i++)
        {
            Console.SetCursorPosition(left, top + i);
            Console.Write(spaces);
        }
    }
    finally
    {
        Console.BackgroundColor = colorBefore;
    }
}

Note that this will restore the background colour, but not the previous cursor location.

like image 74
Jon Skeet Avatar answered Jan 15 '23 11:01

Jon Skeet