Прочитать на английском

Поделиться через


Console.TreatControlCAsInput Свойство

Определение

Получает или задает значение, указывающее, интерпретируется ли комбинация клавиши-модификатора Control и клавиши консоли C (Ctrl+C) как обычный ввод или как прерывание, которое обрабатывается операционной системой.

[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static bool TreatControlCAsInput { get; set; }
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
[System.Runtime.Versioning.UnsupportedOSPlatform("android")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static bool TreatControlCAsInput { get; set; }
public static bool TreatControlCAsInput { get; set; }

Значение свойства

Boolean

Значение true, если сочетание клавиш CTRL+C интерпретируется как обычный ввод; в противном случае — значение false.

Атрибуты

Исключения

Не удалось получить или задать режим ввода входного буфера консоли.

Примеры

В следующем примере показано TreatControlCAsInput свойство.

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

Комментарии

Если значение свойства имеет false значение TreatControlCAsInput и нажатие клавиш CTRL+C, нажатые клавиши не хранятся в входном буфере, а операционная система завершает текущий выполняемый процесс. Это значение по умолчанию.

Внимание!

Используйте это свойство разумно, так как установка на него true такого драматического эффекта. Большинство пользователей ожидают, что ctrl+C завершит консольное приложение. Если вы отключаете эффект CTRL+C, пользователю необходимо помнить, что для завершения приложения необходимо использовать сочетание клавиш CTRL+Break, которое является менее знакомым сочетанием клавиш.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

См. также раздел