ConsoleKeyInfo Struktura

Definice

Popisuje stisknutou klávesu konzoly, včetně znaku reprezentovaného klávesou konzoly a stavu modifikátoru SHIFT, ALT a CTRL.

public value class ConsoleKeyInfo : IEquatable<ConsoleKeyInfo>
public value class ConsoleKeyInfo
public readonly struct ConsoleKeyInfo : IEquatable<ConsoleKeyInfo>
public struct ConsoleKeyInfo
public readonly struct ConsoleKeyInfo
[System.Serializable]
public struct ConsoleKeyInfo
type ConsoleKeyInfo = struct
[<System.Serializable>]
type ConsoleKeyInfo = struct
Public Structure ConsoleKeyInfo
Implements IEquatable(Of ConsoleKeyInfo)
Public Structure ConsoleKeyInfo
Dědičnost
ConsoleKeyInfo
Atributy
Implementuje

Příklady

Následující příklad ukazuje použití ConsoleKeyInfo objektu v operaci čtení.

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
open System

// Prevent example from ending if CTL+C is pressed.
Console.TreatControlCAsInput <- true

printfn "Press any combination of CTL, ALT, and SHIFT, and a console key."
printfn "Press the Escape (Esc) key to quit: \n"

let mutable cki = Unchecked.defaultof<ConsoleKeyInfo>

while cki.Key <> ConsoleKey.Escape do
    cki <- Console.ReadKey()
    printf " --- You pressed "
    if int (cki.Modifiers &&& ConsoleModifiers.Alt) <> 0 then printf "ALT+"
    if int (cki.Modifiers &&& ConsoleModifiers.Shift) <> 0 then printf "SHIFT+"
    if int (cki.Modifiers &&& ConsoleModifiers.Control) <> 0 then printf "CTL+"
    printfn $"{cki.Key}"


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

Poznámky

Typ ConsoleKeyInfo není určen k vytvoření uživateli. Místo toho se uživateli vrátí v reakci na volání Console.ReadKey metody.

Objekt ConsoleKeyInfo popisuje ConsoleKey konstantní znak a znak Unicode, pokud existuje, který odpovídá stisknuté konzole klávesy. Objekt ConsoleKeyInfo také popisuje, v bitové kombinaci ConsoleModifiers hodnot, ať už jedna nebo více kláves SHIFT, ALT nebo CTRL modifikátoru byla současně stisknuta s klávesou konzoly.

Konstruktory

Name Description
ConsoleKeyInfo(Char, ConsoleKey, Boolean, Boolean, Boolean)

Inicializuje novou instanci struktury pomocí zadaného ConsoleKeyInfo znaku, klíče konzoly a modifikačních kláves.

Vlastnosti

Name Description
Key

Získá klíč konzoly reprezentovaný aktuálním ConsoleKeyInfo objektem.

KeyChar

Získá znak Unicode reprezentovaný aktuálním ConsoleKeyInfo objektem.

Modifiers

Získá bitovou ConsoleModifiers kombinaci hodnot, která určuje jednu nebo více modifikačních kláves současně s klávesou konzoly.

Metody

Name Description
Equals(ConsoleKeyInfo)

Získá hodnotu určující, zda zadaný ConsoleKeyInfo objekt je roven aktuálnímu ConsoleKeyInfo objektu.

Equals(Object)

Získá hodnotu určující, zda zadaný objekt je roven aktuálnímu ConsoleKeyInfo objektu.

GetHashCode()

Vrátí kód hash pro aktuální ConsoleKeyInfo objekt.

Operátory

Name Description
Equality(ConsoleKeyInfo, ConsoleKeyInfo)

Určuje, zda jsou zadané ConsoleKeyInfo objekty stejné.

Inequality(ConsoleKeyInfo, ConsoleKeyInfo)

Určuje, zda zadané ConsoleKeyInfo objekty nejsou stejné.

Platí pro

Viz také