键盘事件教程c#

键盘事件教程c#,c#,events,code-snippets,C#,Events,Code Snippets,有人能给我一个片段,关于用户按下向下箭头按钮或向上箭头按钮时发生的事件,在控制台中,例如要触发的事件吗 Console.WriteLine("You have pressed up/down arrow "); 也许这是一个愚蠢的问题,但我无法在事件中找到它,但我需要在事件中找到它,欢迎提供任何帮助。控制台应用程序没有UI事件,因此您只能使用console.ReadKey()控制台应用程序没有UI事件,因此您只能使用console.ReadKey()这里有一个循环,它会重复执行该操作,直到用

有人能给我一个片段,关于用户按下向下箭头按钮或向上箭头按钮时发生的事件,在控制台中,例如要触发的事件吗

 Console.WriteLine("You have pressed up/down arrow ");

也许这是一个愚蠢的问题,但我无法在事件中找到它,但我需要在事件中找到它,欢迎提供任何帮助。

控制台应用程序没有UI事件,因此您只能使用
console.ReadKey()

控制台应用程序没有UI事件,因此您只能使用
console.ReadKey()

这里有一个循环,它会重复执行该操作,直到用户按下Ctrl+C:

while (true)
{
    ConsoleKeyInfo key = Console.ReadKey();

    if (key.Key == ConsoleKey.UpArrow || key.Key == ConsoleKey.DownArrow)
    {
        Console.WriteLine("You have pressed up/down arrow ");
    }
}

这样就可以了。

这里有一个循环,它会重复执行该操作,直到用户按下Ctrl+C:

while (true)
{
    ConsoleKeyInfo key = Console.ReadKey();

    if (key.Key == ConsoleKey.UpArrow || key.Key == ConsoleKey.DownArrow)
    {
        Console.WriteLine("You have pressed up/down arrow ");
    }
}

应该可以。控制台没有定义这些事件。您可以使用来模拟某些内容。您必须定义自己的事件,然后:

var key = Console.ReadKey();
// create event parameters and dispatch the event
显然,
Console.ReadKey
会阻塞控制台。如果需要,可以将其放在线程中,然后从那里调度事件。不过,请注意,事件通知将在单独的线程(即,不是主线程)上发出


此外,不能让两个不同的线程从同一个控制台读取数据。嗯,你可以,但是结果是不可预测的。例如,如果您的后台线程正在等待一个
ReadKey
,而另一个线程调用
Console.ReadLine()
,则不知道输入将在哪里结束。

控制台没有定义这些事件。您可以使用来模拟某些内容。您必须定义自己的事件,然后:

var key = Console.ReadKey();
// create event parameters and dispatch the event
显然,
Console.ReadKey
会阻塞控制台。如果需要,可以将其放在线程中,然后从那里调度事件。不过,请注意,事件通知将在单独的线程(即,不是主线程)上发出


此外,不能让两个不同的线程从同一个控制台读取数据。嗯,你可以,但是结果是不可预测的。例如,如果您的后台线程正在等待一个
ReadKey
,而另一个线程调用
Console.ReadLine()
,则不知道输入将在哪里结束。

这是以前询问过的。看这里,这是以前问过的。看这里,没关系,不能像这样做:如果Console.ReadKey==ConsoleKey.UpArrow Console.WriteLine(“向上箭头被按下”);好吧,没关系,不能像这样做:如果Console.ReadKey==ConsoleKey.UpArrow Console.WriteLine(“向上箭头被按下”);没问题,祝你好运。没问题,祝你好运。