Console.Clear Console.Clear Console.Clear Console.Clear Method

Définition

Efface la mémoire tampon et la fenêtre correspondante de la console contenant les informations d'affichage. Clears the console buffer and corresponding console window of display information.

public:
 static void Clear();
public static void Clear ();
static member Clear : unit -> unit
Public Shared Sub Clear ()
Exceptions

Une erreur d'E/S s'est produite. An I/O error occurred.

Exemples

L’exemple suivant utilise la Clear méthode pour effacer la console avant d’exécuter une boucle, invite l’utilisateur pour sélectionner une couleur de premier plan et d’arrière-plan et entrez une chaîne à afficher.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. Si l’utilisateur choisit de ne pas quitter le programme, les couleurs de premier plan et d’arrière-plan d’origine de la console sont restaurés et Clear méthode est appelée à nouveau avant de relancer l’exécution de la boucle.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.

using System;

public class Example
{
   public static void Main()
   {
      // Save colors so they can be restored when use finishes input.
      ConsoleColor dftForeColor = Console.ForegroundColor;
      ConsoleColor dftBackColor = Console.BackgroundColor;
      bool continueFlag = true;
      Console.Clear();
            
      do { 
         ConsoleColor newForeColor = ConsoleColor.White;
         ConsoleColor newBackColor = ConsoleColor.Black;
                  
         Char foreColorSelection = GetKeyPress("Select Text Color (B for Blue, R for Red, Y for Yellow): ", 
                                              new Char[] { 'B', 'R', 'Y' } );
         switch (foreColorSelection) {
            case 'B':
            case 'b':
               newForeColor = ConsoleColor.DarkBlue;
               break;
            case 'R':
            case 'r':
               newForeColor = ConsoleColor.DarkRed;
               break;
            case 'Y':
            case 'y':
               newForeColor = ConsoleColor.DarkYellow;
               break;   
         }
         Char backColorSelection = GetKeyPress("Select Background Color (W for White, G for Green, M for Magenta): ",
                                              new Char[] { 'W', 'G', 'M' });
         switch (backColorSelection) {
            case 'W':
            case 'w':
               newBackColor = ConsoleColor.White;
               break;
            case 'G':
            case 'g':
               newBackColor = ConsoleColor.Green;
               break;
            case 'M':
            case 'm':
               newBackColor = ConsoleColor.Magenta;
               break;   
         }
         
         Console.WriteLine();
         Console.Write("Enter a message to display: ");
         String textToDisplay = Console.ReadLine();
         Console.WriteLine();
         Console.ForegroundColor = newForeColor;
         Console.BackgroundColor = newBackColor;
         Console.WriteLine(textToDisplay);
         Console.WriteLine();
         if (Char.ToUpper(GetKeyPress("Display another message (Y/N): ", new Char[] { 'Y', 'N' } )) == 'N')
            continueFlag = false;

         // Restore the default settings and clear the screen.
         Console.ForegroundColor = dftForeColor;
         Console.BackgroundColor = dftBackColor;
         Console.Clear();
      } while (continueFlag);
   }

   private static Char GetKeyPress(String msg, Char[] validChars) 
   {
      ConsoleKeyInfo keyPressed;
      bool valid = false;
      
      Console.WriteLine();
      do {
         Console.Write(msg);
         keyPressed = Console.ReadKey();
         Console.WriteLine();
         if (Array.Exists(validChars, ch => ch.Equals(Char.ToUpper(keyPressed.KeyChar))))           
            valid = true;

      } while (! valid);
      return keyPressed.KeyChar; 
   }
}
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
      Console.Clear()
            
      Do 
         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.WriteLine()
         Console.Write("Enter a message to display: ")
         Dim textToDisplay As String = Console.ReadLine()
         Console.WriteLine()
         Console.ForegroundColor = newForeColor
         Console.BackgroundColor = newBackColor
         Console.WriteLine(textToDisplay)
         Console.WriteLine()
         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
         Console.Clear()
      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
      
      Console.WriteLine()
      Do
         Console.Write(msg)
         keyPressed = Console.ReadKey()
         Console.WriteLine()
         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

L’exemple s’appuie sur un GetKeyPress méthode pour valider la sélection de l’utilisateur d’une couleur de premier plan et d’arrière-plan.The example relies on a GetKeyPress method to validate the user's selection of a foreground and background color.

Cet exemple montre la CursorLeft et CursorTop propriétés et le SetCursorPosition et Clear méthodes.This example demonstrates the CursorLeft and CursorTop properties, and the SetCursorPosition and Clear methods. L’exemple positionne le curseur, qui détermine l’emplacement de l’écriture suivante, pour dessiner un rectangle de 5 caractères à l’aide d’une combinaison de 5 « + », «|», et «- » chaînes.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. Notez que le rectangle pourrait être dessiné avec moins d’étapes à l’aide d’une autre combinaison de chaînes.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.
using namespace System;
int origRow;
int origCol;
void WriteAt( String^ s, int x, int y )
{
   try
   {
      Console::SetCursorPosition( origCol + x, origRow + y );
      Console::Write( s );
   }
   catch ( ArgumentOutOfRangeException^ e ) 
   {
      Console::Clear();
      Console::WriteLine( e->Message );
   }

}

int main()
{
   
   // Clear the screen, then save the top and left coordinates.
   Console::Clear();
   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 );
   Console::WriteLine();
}

/*
This example produces the following results:

+---+
|   |
|   |
|   |
+---+

All done!

*/
// This example demonstrates the 
//     Console.CursorLeft and 
//     Console.CursorTop properties, and the
//     Console.SetCursorPosition and 
//     Console.Clear methods.
using System;

class Sample 
{
    protected static int origRow;
    protected static int origCol;

    protected static void WriteAt(string s, int x, int y)
    {
    try
        {
        Console.SetCursorPosition(origCol+x, origRow+y);
        Console.Write(s);
        }
    catch (ArgumentOutOfRangeException e)
        {
        Console.Clear();
        Console.WriteLine(e.Message);
        }
    }

    public static void Main() 
    {
// Clear the screen, then save the top and left coordinates.
    Console.Clear();
    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);
    Console.WriteLine();
    }
}
/*
This example produces the following results:

+---+
|   |
|   |
|   |
+---+

All done!

*/
' 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)
      Try
         Console.SetCursorPosition(origCol + x, origRow + y)
         Console.Write(s)
      Catch e As ArgumentOutOfRangeException
         Console.Clear()
         Console.WriteLine(e.Message)
      End Try
   End Sub 'WriteAt
   
   Public Shared Sub Main()
      ' Clear the screen, then save the top and left coordinates.
      Console.Clear()
      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)
      Console.WriteLine()
   End Sub 'Main
End Class 'Sample
'
'This example produces the following results:
'
'+---+
'|   |
'|   |
'|   |
'+---+
'
'All done!
'

Remarques

À l’aide de la Clear méthode est équivalente à l’appel MS-DOS cls commande dans la fenêtre d’invite de commandes.Using the Clear method is equivalent invoking the MS-DOS cls command in the command prompt window. Lorsque le Clear méthode est appelée, le curseur se place automatiquement dans le coin supérieur gauche de la fenêtre et le contenu de la mémoire tampon d’écran est défini sur les espaces à l’aide de couleurs d’arrière-plan de premier plan actuelle.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.

Note

Essayez d’appeler le Clear méthode lors de la sortie d’une application de console est redirigée vers un fichier lève un IOException.Attempting to call the Clear method when a console application's output is redirected to a file throws a IOException. Pour éviter ce problème, encapsulez toujours un appel à la Clear méthode dans un try...catchTo prevent this, always wrap a call to the Clear method in a trycatch bloc.block.

S’applique à