ConsoleSpecialKey Enumeration
.NET Framework (current version)
Specifies combinations of modifier and console keys that can interrupt the current process.
Assembly: mscorlib (in mscorlib.dll)
| Member name | Description | |
|---|---|---|
| ControlBreak | The ConsoleModifiers::Control modifier key plus the BREAK console key. | |
| ControlC | The ConsoleModifiers::Control modifier key plus the ConsoleKey::C console key. |
The ConsoleCancelEventArgs::SpecialKey property returns the ConsoleSpecialKey enumeration type.
Simultaneously pressing certain key combinations signals the operating system to interrupt the currently running process. The two valid key combinations are ConsoleModifiers::Control plus BREAK (CTRL+BREAK) and ConsoleModifiers::Control plus ConsoleKey::C (CTRL+C).
The following code example displays the ConsoleSpecialKey value that invokes the associated event handler.
using namespace System; void OnCancelKeyPressed(Object^ sender, ConsoleCancelEventArgs^ args) { Console::WriteLine("{0}The read operation has been interrupted.", Environment::NewLine); Console::WriteLine(" Key pressed: {0}", args->SpecialKey); Console::WriteLine(" Cancel property: {0}", args->Cancel); // Set the Cancel property to true to prevent the process from // terminating. Console::WriteLine("Setting the Cancel property to true..."); args->Cancel = true; // Announce the new value of the Cancel property. Console::WriteLine(" Cancel property: {0}", args->Cancel); Console::WriteLine("The read operation will resume...{0}", Environment::NewLine); } int main() { // Clear the screen. Console::Clear(); // Establish an event handler to process key press events. Console::CancelKeyPress += gcnew ConsoleCancelEventHandler(OnCancelKeyPressed); while (true) { // Prompt the user. Console::Write("Press any key, or 'X' to quit, or "); Console::WriteLine("CTRL+C to interrupt the read operation:"); // Start a console read operation. Do not display the input. ConsoleKeyInfo^ keyInfo = Console::ReadKey(true); // Announce the name of the key that was pressed . Console::WriteLine(" Key pressed: {0}{1}", keyInfo->Key, Environment::NewLine); // Exit if the user pressed the 'X' key. if (keyInfo->Key == ConsoleKey::X) { break; } } } // The example displays output similar to the following: // Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation: // Key pressed: J // // Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation: // Key pressed: Enter // // Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation: // // The read operation has been interrupted. // Key pressed: ControlC // Cancel property: False // Setting the Cancel property to true... // Cancel property: True // The read operation will resume... // // Key pressed: Q // // Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation: // Key pressed: X
.NET Framework
Available since 2.0
Available since 2.0
Show: