ConsoleKeyInfo Estrutura

Definição

Descreve a tecla de consola que foi pressionada, incluindo o carácter representado pela tecla de consola e o estado das teclas modificadoras SHIFT, ALT e CTRL.

public value class ConsoleKeyInfo
[System.Serializable]
public struct ConsoleKeyInfo
public struct ConsoleKeyInfo
public readonly struct ConsoleKeyInfo
[<System.Serializable>]
type ConsoleKeyInfo = struct
type ConsoleKeyInfo = struct
Public Structure ConsoleKeyInfo
Herança
ConsoleKeyInfo
Atributos

Exemplos

O exemplo seguinte demonstra o uso de um ConsoleKeyInfo objeto numa operação de leitura.

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

Observações

O ConsoleKeyInfo tipo não se destina a ser criado pelos utilizadores. Em vez disso, é devolvido ao utilizador em resposta à chamada do Console.ReadKey método.

O ConsoleKeyInfo objeto descreve a constante e o ConsoleKey carácter Unicode, se existirem, que correspondem à tecla de consola pressionada. O ConsoleKeyInfo objeto também descreve, numa combinação bit a bit de ConsoleModifiers valores, se uma ou mais teclas modificadoras SHIFT, ALT ou CTRL foi pressionada simultaneamente com a tecla da consola.

Construtores

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

Inicializa uma nova instância da ConsoleKeyInfo estrutura usando o carácter, a tecla consola e as teclas modificadoras especificadas.

Propriedades

Name Description
Key

Obtém a tecla da consola representada pelo objeto atual ConsoleKeyInfo .

KeyChar

Obtém o carácter Unicode representado pelo objeto atual ConsoleKeyInfo .

Modifiers

Obtém uma combinação bit a bit de ConsoleModifiers valores que especifica uma ou mais teclas modificadoras pressionadas simultaneamente com a tecla da consola.

Métodos

Name Description
Equals(ConsoleKeyInfo)

Obtém um valor que indica se o objeto especificado ConsoleKeyInfo é igual ao objeto atual ConsoleKeyInfo .

Equals(Object)

Obtém um valor que indica se o objeto especificado é igual ao objeto atual ConsoleKeyInfo .

GetHashCode()

Devolve o código hash do objeto atual ConsoleKeyInfo .

Operadores

Name Description
Equality(ConsoleKeyInfo, ConsoleKeyInfo)

Indica se os objetos especificados ConsoleKeyInfo são iguais.

Inequality(ConsoleKeyInfo, ConsoleKeyInfo)

Indica se os objetos especificados ConsoleKeyInfo não são iguais.

Aplica-se a

Ver também