Lire en anglais

Partager via


Console.ReadKey Méthode

Définition

Obtient le caractère suivant ou la touche de fonction sur laquelle l'utilisateur a appuyé.

Surcharges

ReadKey()

Obtient le caractère suivant ou la touche de fonction sur laquelle l'utilisateur a appuyé. La touche enfoncée s'affiche dans la fenêtre de console.

ReadKey(Boolean)

Obtient le caractère suivant ou la touche de fonction sur laquelle l'utilisateur a appuyé. La touche enfoncée s'affiche éventuellement dans la fenêtre de console.

ReadKey()

Source:
Console.cs
Source:
Console.cs
Source:
Console.cs

Obtient le caractère suivant ou la touche de fonction sur laquelle l'utilisateur a appuyé. La touche enfoncée s'affiche dans la fenêtre de console.

[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static ConsoleKeyInfo ReadKey ();
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
[System.Runtime.Versioning.UnsupportedOSPlatform("android")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static ConsoleKeyInfo ReadKey ();
public static ConsoleKeyInfo ReadKey ();

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. 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.

Attributs

Exceptions

La propriété In est redirigée à partir d’un flux autre que la console.

Exemples

L’une des utilisations les plus courantes de la méthode consiste à arrêter l’exécution ReadKey() du programme jusqu’à ce que l’utilisateur appuie sur une touche et que l’application se termine ou affiche une fenêtre d’informations supplémentaire. 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.

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

Notez que cette surcharge de la ReadKey méthode par défaut renvoie toutes les touches affichables que l’utilisateur appuie sur la console. Pour les supprimer, appelez la ReadKey méthode avec un intercept argument de true.

L’exemple suivant utilise la ReadKey() méthode pour afficher des informations sur la touche sur laquelle l’utilisateur a appuyé.

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

Remarques

La ReadKey méthode attend, c’est-à-dire qu’elle bloque le thread qui émet la ReadKey méthode, jusqu’à ce qu’une touche de caractère ou de fonction soit enfoncée. Vous pouvez appuyer sur une touche de caractère ou de fonction en combinaison avec une ou plusieurs touches Alt, Ctrl ou Maj. Toutefois, le fait d’appuyer sur une touche modificateur par lui-même n’entraîne pas le retour de la ReadKey méthode.

Selon votre application, vous pouvez utiliser la ReadKey méthode conjointement avec la KeyAvailable propriété .

La ReadKey méthode lit à partir du clavier même si l’entrée standard est redirigée vers un fichier avec la SetIn méthode .

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

ReadKey(Boolean)

Source:
Console.cs
Source:
Console.cs
Source:
Console.cs

Obtient le caractère suivant ou la touche de fonction sur laquelle l'utilisateur a appuyé. La touche enfoncée s'affiche éventuellement dans la fenêtre de console.

[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static ConsoleKeyInfo ReadKey (bool intercept);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
[System.Runtime.Versioning.UnsupportedOSPlatform("android")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static ConsoleKeyInfo ReadKey (bool intercept);
public static ConsoleKeyInfo ReadKey (bool intercept);

Paramètres

intercept
Boolean

Détermine s'il faut afficher ou non la touche enfoncée dans la fenêtre de la console. true pour ne pas afficher la touche enfoncée ; sinon, 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. 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.

Attributs

Exceptions

La propriété In est redirigée à partir d’un flux autre que la console.

Exemples

L’une des utilisations les plus courantes de la méthode consiste à arrêter l’exécution ReadKey du programme jusqu’à ce que l’utilisateur appuie sur une touche et que l’application se termine ou affiche une fenêtre d’informations supplémentaire. 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. Notez que, si l’utilisateur appuie sur une autre touche, celle-ci n’est pas répercutée dans la 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

L’exemple suivant utilise la ReadKey(Boolean) méthode pour afficher des informations sur la touche enfoncée par un utilisateur sans faire écho à cette touche dans la console.

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 '←')

Remarques

La ReadKey méthode attend, c’est-à-dire qu’elle bloque le thread qui émet la ReadKey méthode, jusqu’à ce qu’une touche de caractère ou de fonction soit enfoncée. Vous pouvez appuyer sur une touche de caractère ou de fonction en combinaison avec une ou plusieurs touches Alt, Ctrl ou Maj. Toutefois, le fait d’appuyer sur une touche modificateur par lui-même n’entraîne pas le retour de la ReadKey méthode.

Si le intercept paramètre est true, la touche enfoncée est interceptée et ne s’affiche pas dans la fenêtre de console ; sinon, la touche enfoncée s’affiche.

Selon votre application, vous pouvez utiliser la ReadKey méthode conjointement avec la KeyAvailable propriété .

La ReadKey méthode lit à partir du clavier même si l’entrée standard est redirigée vers un fichier avec la SetIn méthode .

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1