ConsoleModifiers Enumeration
.NET Framework 2.0
Note: This enumeration is new in the .NET Framework version 2.0.
Represents the SHIFT, ALT, and CTRL modifier keys on a keyboard.
Assembly: mscorlib (in mscorlib.dll)
This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.
Namespace: SystemAssembly: mscorlib (in mscorlib.dll)
'Declaration <SerializableAttribute> _ <FlagsAttribute> _ Public Enumeration ConsoleModifiers 'Usage Dim instance As ConsoleModifiers
/** @attribute SerializableAttribute() */ /** @attribute FlagsAttribute() */ public enum ConsoleModifiers
SerializableAttribute FlagsAttribute public enum ConsoleModifiers
No distinction is made between the left or right SHIFT, ALT, and CTRL keys.
The ConsoleModifiers enumeration is used in conjunction with the ConsoleKeyInfo type.
The following code example reads a key and determines whether one or more modifier keys was pressed.
' This example demonstrates the Console.ReadKey() method Imports System Imports System.Text Imports Microsoft.VisualBasic Class Sample Public Shared Sub Main() Dim cki As ConsoleKeyInfo ' 0 1 2 3 4 5 6 ' 123456789012345678901234567890123456879012345678901234567890 Dim m1 As String = "This example discovers the console and modifier keys " & _ "that you press." & vbCrLf Dim m2 As String = "Press any combination of CTL, ALT, and SHIFT modifier keys, " & _ "and a console key." & vbCrLf & _ "Press the Escape (Esc) key to quit: " Dim m3 As String = "You pressed " Dim m4 As String = " (character '{0}')." Dim sb As New StringBuilder() ' ' The Console.TreatControlCAsInput property prevents this example from ' ending if you press CTL+C, however all other operating system keys and ' shortcuts, such as ALT+TAB or the Windows Logo key, are still in effect. ' Console.TreatControlCAsInput = True Console.WriteLine(m1) Do Console.WriteLine(m2) sb.Length = 0 cki = Console.ReadKey(True) sb.Append(m3) If cki.Modifiers <> 0 Then If(cki.Modifiers And ConsoleModifiers.Alt) <> 0 Then sb.Append("ALT+") End If If(cki.Modifiers And ConsoleModifiers.Shift) <> 0 Then sb.Append("SHIFT+") End If If(cki.Modifiers And ConsoleModifiers.Control) <> 0 Then sb.Append("CTL+") End If End If sb.Append(cki.Key.ToString()) sb.AppendFormat(m4, cki.KeyChar) sb.AppendLine().AppendLine() Console.WriteLine(sb.ToString()) Loop While cki.Key <> ConsoleKey.Escape End Sub 'Main ' Note: This example requires the Escape (Esc) key. End Class 'Sample ' 'This example produces results similar to following text: ' 'This example discovers the console and modifier keys that you press. ' 'Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key. 'Press the Escape (Esc) key to quit: 'You pressed A (character 'a'). ' ' 'Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key. 'Press the Escape (Esc) key to quit: 'You pressed SHIFT+A (character 'A'). ' ' 'Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key. 'Press the Escape (Esc) key to quit: 'You pressed ALT+SHIFT+CTL+A (character ' '). ' ' 'Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key. 'Press the Escape (Esc) key to quit: 'You pressed Escape (character '?'). '
// This example demonstrates the Console.ReadKey() method
import System.*;
import System.Text.*;
class Sample
{
public static void main(String[] args)
{
ConsoleKeyInfo cki;
// 0 1 2 3 4 5 6
// 123456789012345678901234567890123456879012345678901234567890
String m1 = "This example discovers the console and modifier keys "
+ "that you press.\n";
String m2 = "Press any combination of CTL, ALT, and SHIFT modifier keys, "
+ "and a console key.\nPress the Escape (Esc) key to quit: ";
String m3 = "You pressed ";
String m4 = " (character '{0}').";
StringBuilder sb = new StringBuilder();
//
// The Console.TreatControlCAsInput property prevents this example from
// ending if you press CTL+C, however all other operating system keys and
// shortcuts, such as ALT+TAB or the Windows Logo key, are still in
// effect.
//
Console.set_TreatControlCAsInput(true);
Console.WriteLine(m1);
do {
Console.WriteLine(m2);
sb.set_Length(0);
cki = Console.ReadKey(true);
sb.Append(m3);
if (!(cki.get_Modifiers().Equals((Int32)0))) {
if (!((cki.get_Modifiers() & ConsoleModifiers.Alt).ToString().
Equals(Convert.ToString(0)))) {
sb.Append("ALT+");
}
if (!((cki.get_Modifiers() & ConsoleModifiers.Shift).ToString().
Equals(Convert.ToString(0)))) {
sb.Append("SHIFT+");
}
if (!((cki.get_Modifiers() & ConsoleModifiers.Control).ToString().
Equals(Convert.ToString(0)))) {
sb.Append("CTL+");
}
}
sb.Append(cki.get_Key().ToString());
sb.AppendFormat(m4, (System.Char)cki.get_KeyChar());
sb.AppendLine().AppendLine();
Console.WriteLine(sb.ToString());
} while (!(cki.get_Key().Equals(ConsoleKey.Escape)));
// Note: This example requires the Escape (Esc) key.
} //main
} //Sample
/*
This example produces results similar to following text:
This example discovers the console and modifier keys that you press.
Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed A (character 'a').
Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed SHIFT+A (character 'A').
Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed ALT+SHIFT+CTL+A (character ' ').
Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed Escape (character '?').
*/
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Community Additions
ADD
Show: