Export (0) Print
Expand All

ConsoleKeyInfo Structure

Describes the console key that was pressed, including the character represented by the console key and the state of the SHIFT, ALT, and CTRL modifier keys.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
<SerializableAttribute> _
Public Structure ConsoleKeyInfo

The ConsoleKeyInfo type exposes the following members.

  NameDescription
Public methodConsoleKeyInfoInitializes a new instance of the ConsoleKeyInfo structure using the specified character, console key, and modifier keys.
Top

  NameDescription
Public propertyKeyGets the console key represented by the current ConsoleKeyInfo object.
Public propertyKeyCharGets the Unicode character represented by the current ConsoleKeyInfo object.
Public propertyModifiersGets a bitwise combination of System.ConsoleModifiers values that specifies one or more modifier keys pressed simultaneously with the console key.
Top

  NameDescription
Public methodEquals(ConsoleKeyInfo)Gets a value indicating whether the specified ConsoleKeyInfo object is equal to the current ConsoleKeyInfo object.
Public methodEquals(Object)Gets a value indicating whether the specified object is equal to the current ConsoleKeyInfo object. (Overrides ValueType.Equals(Object).)
Public methodGetHashCodeReturns the hash code for the current ConsoleKeyInfo object. (Overrides ValueType.GetHashCode.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodToStringReturns the fully qualified type name of this instance. (Inherited from ValueType.)
Top

  NameDescription
Public operatorStatic memberEqualityIndicates whether the specified ConsoleKeyInfo objects are equal.
Public operatorStatic memberInequalityIndicates whether the specified ConsoleKeyInfo objects are not equal.
Top

The ConsoleKeyInfo type is not intended to be created by users. Instead, it is returned to the user in response to calling the Console.ReadKey method.

The ConsoleKeyInfo object describes the ConsoleKey constant and Unicode character, if any, that correspond to the pressed console key. 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.

The following example demonstrates using a ConsoleKeyInfo object in a read operation.

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 

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft