我需要在 Escape 键上按下不同的命令,例如
if Escape key is once pressed .. Draw(250,250);
if Escape key is twice pressed .. Draw(350,350);
if Escape key is triple pressed .. Draw(450,450);
在一个键上我必须有多个不同的命令, 如何让应用程序计算按下按键的次数并使用该信息运行特定的代码?
答案 0 :(得分:2)
您应该创建一个计数器,并在每次按下该键时递增它。
如果您正在谈论双击或三击“点击”,您还需要设置Timer
。
每次计时器结束时,您都会重置计数器。
唯一剩下的就是根据您的计数器值调用您想要的方法。
int MyKeyCounter = 0;
Timer CounterResetter = new Timer(1000);
CounterResetter.Elapsed += ResetCounter;
void OnKeyPressEvent(object sender, KeyPressEventArgs e)
{
if (e.Key == Key.Escape)
{
MyKeyCounter++;
if(!CounterResetter.Enabled)
CounterResetter.Start();
}
}
void ResetCounter(Object source, ElapsedEventArgs e)
{
if(MyKeyCounter == 1)
Method1();
else if (MyKeyCounter == 2)
Method2();
...
MyKeyCounter = 0;
}
将事件附加到您想要的控件上,并将字段放在顶部。
答案 1 :(得分:0)
这是我能想到的最佳方式。它等待用户输入密钥并对其进行计数 如果它是逃生钥匙。按下任何其他键会打破循环,然后计算按下的次数!
ConsoleKeyInfo key;
int timesPressed = 0;
while(true) {
key = Console.ReadKey();
if (!key.Equals( ConsoleKey.Escape ) || timesPressed >= 3) {
break;
}
timesPressed++;
}