any1是否知道如何制作此代码 - >在执行后超过2秒内阻止和忽略任何其他输入?这似乎是一个非常简单的问题,但是我已经在谷歌上搜索了2天,请帮忙。
public void PressCOM(string key)
{
if (key == "P")
{
PressP("p");
ReleaseKey();
}
}
答案 0 :(得分:2)
我不知道何时调用PressCOM
,或PressP
和ReleaseKey
做什么,所以我可能会离开。但是,如果在按下某个键时将PressCOM
作为事件调用,为什么不创建自己的中断期,在此期间您将无法处理任何进一步的事件?
答案 1 :(得分:2)
如果在事件处理程序方法期间调用此代码,您可以:
1)在退出时禁用事件处理程序方法并在退出时重新启用
myCtrl.KeyPress -= new KeyPressEventHandler(myHandler);
PressCom(key);
myCtrl.KeyPress += new KeyPressEventHandler(myHandler);
2)或简单地在KeyPress事件
中声明一个静态全局表单变量private static _onKeyPress = false;
if(_onKeyPress == false)
{
_onKeyPress = true;
PressCom(key);
_onKeyPress = false;
}
在每种情况下,必须在此处提供的伪代码中添加对错误条件的适当处理。否则,您可能会在没有事件处理程序连接到您的按键或全局变量设置为true的状态下结束,并且没有人可以将其重置为false。