Console.Clear Method

Clears the console buffer and corresponding console window of display information.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

Public Shared Sub Clear


An I/O error occurred.

Using the Clear method is equivalent invoking the MS-DOS cls command in the command prompt window. When the Clear method is called, the cursor automatically scrolls to the top-left corner of the window and the contents of the screen buffer are set to blanks using the current foreground background colors.


Attempting to call the Clear method when a console application's output is redirected to a file throws a IOException. To prevent this, always wrap a call to the Clear method in a trycatch block.

The following example uses the Clear method to clear the console before it executes a loop, prompts the user to select a foreground and background color and to enter a string to display. If the user chooses not to exit the program, the console's original foreground and background colors are restored and the Clear method is called again before re-executing the loop.

Module Example
   Public Sub Main()
      ' Save colors so they can be restored when use finishes input. 
      Dim dftForeColor As ConsoleColor = Console.ForegroundColor
      Dim dftBackColor As ConsoleColor = Console.BackgroundColor
      Dim continueFlag As Boolean = True

         Dim newForeColor As ConsoleColor
         Dim newBackColor As ConsoleColor

         Dim foreColorSelection As Char = GetKeyPress("Select Text Color (B for Blue, R for Red, Y for Yellow): ", 
                                              { "B"c, "R"c, "Y"c } )
         Select Case foreColorSelection
            Case "B"c, "b"c
               newForeColor = ConsoleColor.DarkBlue
            Case "R"c, "r"c
               newForeColor = ConsoleColor.DarkRed
            Case "Y"c, "y"c
               newForeColor = ConsoleColor.DarkYellow   
         End Select 
         Dim backColorSelection As Char = GetKeyPress("Select Background Color (W for White, G for Green, M for Magenta): ",
                                              { "W"c, "G"c, "M"c })
         Select Case backColorSelection
            Case "W"c, "w"c
               newBackColor = ConsoleColor.White
            Case "G"c, "g"c
               newBackColor = ConsoleColor.Green
            Case "M"c, "m"c
               newBackColor = ConsoleColor.Magenta   
         End Select

         Console.Write("Enter a message to display: ")
         Dim textToDisplay As String = Console.ReadLine()
         Console.ForegroundColor = newForeColor
         Console.BackgroundColor = newBackColor
         If Char.ToUpper(GetKeyPress("Display another message (Y/N): ", { "Y"c, "N"c } )) = "N" Then
            continueFlag = False 
         End If 
         ' Restore the default settings and clear the screen.
         Console.ForegroundColor = dftForeColor
         Console.BackgroundColor = dftBackColor
      Loop While continueFlag
   End Sub 

   Private Function GetKeyPress(msg As String, validChars() As Char) As Char 
      Dim keyPressed As ConsoleKeyInfo
      Dim valid As Boolean = False

         keyPressed = Console.ReadKey()
         If Array.Exists(validChars, Function(ch As Char) ch.Equals(Char.ToUpper(keypressed.KeyChar)))           
            valid = True 
         End If 
      Loop While Not valid
      Return keyPressed.KeyChar 
   End Function 
End Module

The example relies on a GetKeyPress method to validate the user's selection of a foreground and background color.

This example demonstrates the CursorLeft and CursorTop properties, and the SetCursorPosition and Clear methods. The example positions the cursor, which determines where the next write will occur, to draw a 5 character by 5 character rectangle using a combination of "+", "|", and "-" strings. Note that the rectangle could be drawn with fewer steps using a combination of other strings.

' This example demonstrates the  
'     Console.CursorLeft and  
'     Console.CursorTop properties, and the 
'     Console.SetCursorPosition and  
'     Console.Clear methods. 
Imports System

Class Sample
   Protected Shared origRow As Integer 
   Protected Shared origCol As Integer 

   Protected Shared Sub WriteAt(s As String, x As Integer, y As Integer)
         Console.SetCursorPosition(origCol + x, origRow + y)
      Catch e As ArgumentOutOfRangeException
      End Try 
   End Sub 'WriteAt

   Public Shared Sub Main()
      ' Clear the screen, then save the top and left coordinates.
      origRow = Console.CursorTop
      origCol = Console.CursorLeft

      ' Draw the left side of a 5x5 rectangle, from top to bottom.
      WriteAt("+", 0, 0)
      WriteAt("|", 0, 1)
      WriteAt("|", 0, 2)
      WriteAt("|", 0, 3)
      WriteAt("+", 0, 4)

      ' Draw the bottom side, from left to right.
      WriteAt("-", 1, 4) ' shortcut: WriteAt("---", 1, 4)
      WriteAt("-", 2, 4) ' ...
      WriteAt("-", 3, 4) ' ...
      WriteAt("+", 4, 4)

      ' Draw the right side, from bottom to top.
      WriteAt("|", 4, 3)
      WriteAt("|", 4, 2)
      WriteAt("|", 4, 1)
      WriteAt("+", 4, 0)

      ' Draw the top side, from right to left.
      WriteAt("-", 3, 0) ' shortcut: WriteAt("---", 1, 0)
      WriteAt("-", 2, 0) ' ...
      WriteAt("-", 1, 0) ' ...
      WriteAt("All done!", 0, 6)
   End Sub 'Main
End Class 'Sample

'This example produces the following results: 

'|   | 
'|   | 
'|   | 

'All done! 

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft