Deleting previously written lines in Console

后端 未结 2 406
醉梦人生
醉梦人生 2020-12-10 19:54

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 fo

2条回答
  •  醉梦人生
    2020-12-10 20:32

    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.

提交回复
热议问题