例子一:
// 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
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);
}
}
例子二:
一个控制台程序,需要输入0~9中的一个,输入后不用按回车自动判断是否是数字,这个程序该怎么写?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleKeyInfo2
{
class Program
{
static void Main(string[] args)
{
while (true)
{
Test();
}
Console.ReadKey(true);
}
static void Test()
{
ConsoleKeyInfo keyinfo = Console.ReadKey(true);
int n;
if (int.TryParse(keyinfo.KeyChar.ToString(), out n))
{
Console.WriteLine("你选择了:" + n);
}
else
{
Console.WriteLine("请按数字键选择");
}
}
}
}