在Mono C#Readline中捕获Control +键

时间:2011-08-07 01:59:16

标签: c# mono console

有没有办法在Mono控制台中使用Readline()来捕捉ctrl +?我正在使用Mono 2.10.2,当我按下ctrl-d时,没有任何反应。我不知道ReadLine()在按下它时会得到什么信号。

1 个答案:

答案 0 :(得分:2)

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

控制键没有任何文本表示,因此它很容易被“捕获”。要捕获控制键,可以使用Console.ReadKey()函数。

以下是documentation page for 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);