Console.ReadKey Console.ReadKey Console.ReadKey Console.ReadKey Method

Définition

Obtient le caractère suivant ou la touche de fonction sur laquelle l'utilisateur a appuyé.Obtains the next character or function key pressed by the user.

Surcharges

ReadKey() ReadKey() ReadKey() ReadKey()

Obtient le caractère suivant ou la touche de fonction sur laquelle l'utilisateur a appuyé.Obtains the next character or function key pressed by the user. La touche enfoncée s'affiche dans la fenêtre de console.The pressed key is displayed in the console window.

ReadKey(Boolean) ReadKey(Boolean) ReadKey(Boolean) ReadKey(Boolean)

Obtient le caractère suivant ou la touche de fonction sur laquelle l'utilisateur a appuyé.Obtains the next character or function key pressed by the user. La touche enfoncée s'affiche éventuellement dans la fenêtre de console.The pressed key is optionally displayed in the console window.

ReadKey() ReadKey() ReadKey() ReadKey()

Obtient le caractère suivant ou la touche de fonction sur laquelle l'utilisateur a appuyé.Obtains the next character or function key pressed by the user. La touche enfoncée s'affiche dans la fenêtre de console.The pressed key is displayed in the console window.

public:
 static ConsoleKeyInfo ReadKey();
public static ConsoleKeyInfo ReadKey ();
static member ReadKey : unit -> ConsoleKeyInfo
Public Shared Function ReadKey () As ConsoleKeyInfo

Retours

Objet qui décrit la constante ConsoleKey et, le cas échéant, le caractère Unicode qui correspond à la touche de console enfoncée.An object that describes the ConsoleKey constant and Unicode character, if any, that correspond to the pressed console key. L'objet ConsoleKeyInfo décrit également, dans une combinaison d'opérations de bits de valeurs ConsoleModifiers, si une ou plusieurs touches de modification MAJ, ALT ou CTRL ont été enfoncées en même temps que la touche de console.The ConsoleKeyInfo object also describes, in a bitwise combination of ConsoleModifiers values, whether one or more Shift, Alt, or Ctrl modifier keys was pressed simultaneously with the console key.

Exceptions

La propriété In est redirigée à partir d’un flux autre que la console.The In property is redirected from some stream other than the console.

Exemples

L’une des utilisations les plus courantes de ReadKey() la méthode consiste à interrompre l’exécution du programme jusqu’à ce que l’utilisateur appuie sur une touche et que l’application soit fermée ou affiche une fenêtre d’informations supplémentaire.One of the most common uses of the ReadKey() method is to halt program execution until the user presses a key and the app either terminates or displays an additional window of information. L’exemple suivant utilise la ReadKey() méthode pour attendre que l’utilisateur appuie sur la touche entrée avant de mettre fin à l’application.The following example uses the ReadKey() method to wait for the user to press the Enter key before terminating the app.

using System;

public class Example
{
   public static void Main()
   {
      DateTime dat = DateTime.Now;
      Console.WriteLine("The time: {0:d} at {0:t}", dat);
      TimeZoneInfo tz = TimeZoneInfo.Local;
      Console.WriteLine("The time zone: {0}\n", 
                        tz.IsDaylightSavingTime(dat) ?
                           tz.DaylightName : tz.StandardName);
      Console.Write("Press <Enter> to exit... ");
      while (Console.ReadKey().Key != ConsoleKey.Enter) {}
   }
}
// The example displays output like the following:
//     The time: 11/11/2015 at 4:02 PM:
//     The time zone: Pacific Standard Time
Module Example
   Public Sub Main()
      Dim dat As Date = Date.Now
      Console.WriteLine("The time: {0:d} at {0:t}", dat)
      Dim tz As TimeZoneInfo = TimeZoneInfo.Local
      Console.WriteLine("The time zone: {0}", 
                        If(tz.IsDaylightSavingTime(dat),
                           tz.DaylightName, tz.StandardName))
      Console.WriteLine()
      Console.Write("Press <Enter> to exit... ")
      Do While Console.ReadKey().Key <> ConsoleKey.Enter
      Loop
   End Sub
End Module
' The example displays the following output:
'     The time: 11/11/2015 at 4:02 PM
'     The time zone: Pacific Standard Time

Notez que cette surcharge de la ReadKey méthode retourne par défaut toutes les clés affichables que l’utilisateur appuie sur la console.Note that this overload of the ReadKey method by default echoes any displayable keys that the user presses to the console. Pour les supprimer, appelez la ReadKey méthode avec un intercept argument de true.To suppress them, call the ReadKey method with an intercept argument of true.

L’exemple suivant utilise la ReadKey() méthode pour afficher des informations sur la touche sur laquelle l’utilisateur a appuyé.The following example uses the ReadKey() method to display information about which key the user pressed.

using namespace System;

void main()
{
   ConsoleKeyInfo cki;
   // Prevent example from ending if CTL+C is pressed.
   Console::TreatControlCAsInput = true;

   Console::WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
   Console::WriteLine("Press the Escape (Esc) key to quit: \n");
   do 
   {
      cki = Console::ReadKey();
      Console::Write(" --- You pressed ");
      if((cki.Modifiers & ConsoleModifiers::Alt) != ConsoleModifiers()) Console::Write("ALT+");
      if((cki.Modifiers & ConsoleModifiers::Shift) != ConsoleModifiers()) Console::Write("SHIFT+");
      if((cki.Modifiers & ConsoleModifiers::Control) != ConsoleModifiers()) Console::Write("CTL+");
      Console::WriteLine(cki.Key.ToString());
   } while (cki.Key != ConsoleKey::Escape);
}
// This example displays output similar to the following:
//       Press any combination of CTL, ALT, and SHIFT, and a console key.
//       Press the Escape (Esc) key to quit:
//       
//       a --- You pressed A 
//       k --- You pressed ALT+K 
//       ► --- You pressed CTL+P 
//         --- You pressed RightArrow 
//       R --- You pressed SHIFT+R 
//                --- You pressed CTL+I 
//       j --- You pressed ALT+J 
//       O --- You pressed SHIFT+O 
//       § --- You pressed CTL+U }
using System;

class Example 
{
   public static void Main() 
   {
      ConsoleKeyInfo cki;
      // Prevent example from ending if CTL+C is pressed.
      Console.TreatControlCAsInput = true;

      Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
      Console.WriteLine("Press the Escape (Esc) key to quit: \n");
      do 
      {
         cki = Console.ReadKey();
         Console.Write(" --- You pressed ");
         if((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+");
         if((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+");
         if((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+");
         Console.WriteLine(cki.Key.ToString());
       } while (cki.Key != ConsoleKey.Escape);
    }
}
// This example displays output similar to the following:
//       Press any combination of CTL, ALT, and SHIFT, and a console key.
//       Press the Escape (Esc) key to quit:
//       
//       a --- You pressed A 
//       k --- You pressed ALT+K 
//       ► --- You pressed CTL+P 
//         --- You pressed RightArrow 
//       R --- You pressed SHIFT+R 
//                --- You pressed CTL+I 
//       j --- You pressed ALT+J 
//       O --- You pressed SHIFT+O 
//       § --- You pressed CTL+U 
Class Example
   Public Shared Sub Main()
      Dim cki As ConsoleKeyInfo
      ' Prevent example from ending if CTL+C is pressed.
      Console.TreatControlCAsInput = True

      Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.")
      Console.WriteLine("Press the Escape (Esc) key to quit: " + vbCrLf)
      Do
         cki = Console.ReadKey()
         Console.Write(" --- You pressed ")
         If (cki.Modifiers And ConsoleModifiers.Alt) <> 0 Then Console.Write("ALT+")
         If (cki.Modifiers And ConsoleModifiers.Shift) <> 0 Then Console.Write("SHIFT+")
         If (cki.Modifiers And ConsoleModifiers.Control) <> 0 Then Console.Write("CTL+")
         Console.WriteLine(cki.Key.ToString)
      Loop While cki.Key <> ConsoleKey.Escape
   End Sub 
End Class 
' This example displays output similar to the following:
'       Press any combination of CTL, ALT, and SHIFT, and a console key.
'       Press the Escape (Esc) key to quit:
'       
'       a --- You pressed A 
'       k --- You pressed ALT+K 
'       ► --- You pressed CTL+P 
'         --- You pressed RightArrow 
'       R --- You pressed SHIFT+R 
'                --- You pressed CTL+I 
'       j --- You pressed ALT+J 
'       O --- You pressed SHIFT+O 
'       § --- You pressed CTL+U 

Remarques

La ReadKey méthode attend, autrement dit, des blocs sur le thread émettant la ReadKey méthode, jusqu’à ce qu’un caractère ou une touche de fonction soit enfoncé.The ReadKey method waits, that is, blocks on the thread issuing the ReadKey method, until a character or function key is pressed. Vous pouvez appuyer sur une touche de caractère ou de fonction en combinaison avec une ou plusieurs touches de modification Alt, CTRL ou Maj.A character or function key can be pressed in combination with one or more Alt, Ctrl, or Shift modifier keys. Toutefois, le fait d’appuyer sur une touche de modification seule ne ReadKey provoque pas le retour de la méthode.However, pressing a modifier key by itself will not cause the ReadKey method to return.

Selon votre application, vous souhaiterez peut-être utiliser la ReadKey méthode conjointement avec la KeyAvailable propriété.Depending on your application, you might want to use the ReadKey method in conjunction with the KeyAvailable property.

La ReadKey méthode lit à partir du clavier même si l’entrée standard est redirigée vers un fichier avec SetIn la méthode.The ReadKey method reads from the keyboard even if the standard input is redirected to a file with the SetIn method.

Voir aussi

ReadKey(Boolean) ReadKey(Boolean) ReadKey(Boolean) ReadKey(Boolean)

Obtient le caractère suivant ou la touche de fonction sur laquelle l'utilisateur a appuyé.Obtains the next character or function key pressed by the user. La touche enfoncée s'affiche éventuellement dans la fenêtre de console.The pressed key is optionally displayed in the console window.

public:
 static ConsoleKeyInfo ReadKey(bool intercept);
public static ConsoleKeyInfo ReadKey (bool intercept);
static member ReadKey : bool -> ConsoleKeyInfo
Public Shared Function ReadKey (intercept As Boolean) As ConsoleKeyInfo

Paramètres

intercept
Boolean Boolean Boolean Boolean

Détermine s'il faut afficher ou non la touche enfoncée dans la fenêtre de la console.Determines whether to display the pressed key in the console window. true pour ne pas afficher la touche enfoncée ; sinon, false.true to not display the pressed key; otherwise, false.

Retours

Objet qui décrit la constante ConsoleKey et, le cas échéant, le caractère Unicode qui correspond à la touche de console enfoncée.An object that describes the ConsoleKey constant and Unicode character, if any, that correspond to the pressed console key. L'objet ConsoleKeyInfo décrit également, dans une combinaison d'opérations de bits de valeurs ConsoleModifiers, si une ou plusieurs touches de modification MAJ, ALT ou CTRL ont été enfoncées en même temps que la touche de console.The ConsoleKeyInfo object also describes, in a bitwise combination of ConsoleModifiers values, whether one or more Shift, Alt, or Ctrl modifier keys was pressed simultaneously with the console key.

Exceptions

La propriété In est redirigée à partir d’un flux autre que la console.The In property is redirected from some stream other than the console.

Exemples

L’une des utilisations les plus courantes de ReadKey la méthode consiste à interrompre l’exécution du programme jusqu’à ce que l’utilisateur appuie sur une touche et que l’application soit fermée ou affiche une fenêtre d’informations supplémentaire.One of the most common uses of the ReadKey method is to halt program execution until the user presses a key and the app either terminates or displays an additional window of information. L’exemple suivant utilise la ReadKey(Boolean) méthode pour attendre que l’utilisateur appuie sur la touche entrée avant de mettre fin à l’application.The following example uses the ReadKey(Boolean) method to wait for the user to press the Enter key before terminating the app. Notez que, si l’utilisateur appuie sur une autre touche, il n’est pas répercuté sur la console.Note that, if the user presses any other key, it is not echoed to the console.

using System;

public class Example
{
   public static void Main()
   {
      DateTime dat = DateTime.Now;
      Console.WriteLine("The time: {0:d} at {0:t}", dat);
      TimeZoneInfo tz = TimeZoneInfo.Local;
      Console.WriteLine("The time zone: {0}\n", 
                        tz.IsDaylightSavingTime(dat) ?
                           tz.DaylightName : tz.StandardName);
      Console.Write("Press <Enter> to exit... ");
      while (Console.ReadKey(true).Key != ConsoleKey.Enter) {}
   }
}
// The example displays output like the following:
//     The time: 11/11/2015 at 4:02 PM:
//     The time zone: Pacific Standard Time
Module Example
   Public Sub Main()
      Dim dat As Date = Date.Now
      Console.WriteLine("The time: {0:d} at {0:t}", dat)
      Dim tz As TimeZoneInfo = TimeZoneInfo.Local
      Console.WriteLine("The time zone: {0}", 
                        If(tz.IsDaylightSavingTime(dat),
                           tz.DaylightName, tz.StandardName))
      Console.WriteLine()
      Console.Write("Press <Enter> to exit... ")
      Do While Console.ReadKey(True).Key <> ConsoleKey.Enter
      Loop
   End Sub
End Module
' The example displays the following output:
'     The time: 11/11/2015 at 4:02 PM
'     The time zone: Pacific Standard Time

L’exemple suivant utilise la ReadKey(Boolean) méthode pour afficher des informations sur la touche enfoncée par un utilisateur sans renvoyer cette clé à la console.The following example uses the ReadKey(Boolean) method to display information about the key pressed by a user without echoing that key to the console.

using namespace System;

void main()
{
   ConsoleKeyInfo cki;
   // Prevent example from ending if CTL+C is pressed.
   Console::TreatControlCAsInput = true;

   Console::WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
   Console::WriteLine("Press the Escape (Esc) key to quit: \n");
   do {
      cki = Console::ReadKey(true);
      Console::Write("You pressed ");
      if ((cki.Modifiers & ConsoleModifiers::Alt) != ConsoleModifiers()) Console::Write("ALT+");
      if ((cki.Modifiers & ConsoleModifiers::Shift) != ConsoleModifiers()) Console::Write("SHIFT+");
      if ((cki.Modifiers & ConsoleModifiers::Control) != ConsoleModifiers()) Console::Write("CTL+");
      Console::WriteLine("{0} (character '{1}')", cki.Key, cki.KeyChar);
   } while (cki.Key != ConsoleKey::Escape);
}
// This example displays output similar to the following:
//       Press any combination of CTL, ALT, and SHIFT, and a console key.
//       Press the Escape (Esc) key to quit:
//       
//       You pressed CTL+A (character '☺')
//       You pressed C (character 'c')
//       You pressed CTL+C (character '♥')
//       You pressed K (character 'k')
//       You pressed ALT+I (character 'i')
//       You pressed ALT+U (character 'u')
//       You pressed ALT+SHIFT+H (character 'H')
//       You pressed Escape (character '←')
using System;

class Example 
{
   public static void Main() 
   {
      ConsoleKeyInfo cki;
      // Prevent example from ending if CTL+C is pressed.
      Console.TreatControlCAsInput = true;

      Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
      Console.WriteLine("Press the Escape (Esc) key to quit: \n");
      do {
         cki = Console.ReadKey(true);
         Console.Write("You pressed ");
         if ((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+");
         if ((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+");
         if ((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+");
         Console.WriteLine("{0} (character '{1}')", cki.Key, cki.KeyChar);
      } while (cki.Key != ConsoleKey.Escape);
   }
}
// This example displays output similar to the following:
//       Press any combination of CTL, ALT, and SHIFT, and a console key.
//       Press the Escape (Esc) key to quit:
//       
//       You pressed CTL+A (character '☺')
//       You pressed C (character 'c')
//       You pressed CTL+C (character '♥')
//       You pressed K (character 'k')
//       You pressed ALT+I (character 'i')
//       You pressed ALT+U (character 'u')
//       You pressed ALT+SHIFT+H (character 'H')
//       You pressed Escape (character '←')
Class Example
   Public Shared Sub Main()
      Dim cki As ConsoleKeyInfo
      ' Prevent example from ending if CTL+C is pressed.
      Console.TreatControlCAsInput = True

      Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.")
      Console.WriteLine("Press the Escape (Esc) key to quit: " + vbCrLf)
      Do
         cki = Console.ReadKey(True)
         Console.Write("You pressed ")
         If (cki.Modifiers And ConsoleModifiers.Alt) <> 0 Then Console.Write("ALT+")
         If (cki.Modifiers And ConsoleModifiers.Shift) <> 0 Then Console.Write("SHIFT+")
         If (cki.Modifiers And ConsoleModifiers.Control) <> 0 Then Console.Write("CTL+")
         Console.WriteLine("{0} (character '{1}')", cki.Key, cki.KeyChar)
      Loop While cki.Key <> ConsoleKey.Escape
   End Sub
End Class 
' This example displays output similar to the following:
'       Press any combination of CTL, ALT, and SHIFT, and a console key.
'       Press the Escape (Esc) key to quit:
'       
'       You pressed CTL+A (character '☺')
'       You pressed C (character 'c')
'       You pressed CTL+C (character '♥')
'       You pressed K (character 'k')
'       You pressed ALT+I (character 'i')
'       You pressed ALT+U (character 'u')
'       You pressed ALT+SHIFT+H (character 'H')
'       You pressed Escape (character '←')

Remarques

La ReadKey méthode attend, autrement dit, des blocs sur le thread émettant la ReadKey méthode, jusqu’à ce qu’un caractère ou une touche de fonction soit enfoncé.The ReadKey method waits, that is, blocks on the thread issuing the ReadKey method, until a character or function key is pressed. Vous pouvez appuyer sur une touche de caractère ou de fonction en combinaison avec une ou plusieurs touches de modification Alt, CTRL ou Maj.A character or function key can be pressed in combination with one or more Alt, Ctrl, or Shift modifier keys. Toutefois, le fait d’appuyer sur une touche de modification seule ne ReadKey provoque pas le retour de la méthode.However, pressing a modifier key by itself will not cause the ReadKey method to return.

Si le intercept paramètre est true, la touche enfoncée est interceptée et n’est pas affichée dans la fenêtre de console ; sinon, la touche enfoncée s’affiche.If the intercept parameter is true, the pressed key is intercepted and not displayed in the console window; otherwise, the pressed key is displayed.

Selon votre application, vous souhaiterez peut-être utiliser la ReadKey méthode conjointement avec la KeyAvailable propriété.Depending on your application, you might want to use the ReadKey method in conjunction with the KeyAvailable property.

La ReadKey méthode lit à partir du clavier même si l’entrée standard est redirigée vers un fichier avec SetIn la méthode.The ReadKey method reads from the keyboard even if the standard input is redirected to a file with the SetIn method.

Voir aussi

S’applique à