捕获控制+键在Mono c# Readline



是否有一种方法来捕获ctrl+使用Readline()在单声道控制台?我使用的是Mono 2.10.2,例如,当我按ctrl-d时,什么也没发生。我不知道什么信号ReadLine()得到当我按下它

ReadLine()读取输入控制台的行文本。

控制键没有任何文本表示,所以它显然没有被"捕获"。要捕获控制键,可以使用Console.ReadKey()函数。

以下是Console.ReadKey()文档页面中的示例。

  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);

最新更新