在KeyEvent内部设置xTime on Condition
本文关键字:on Condition xTime 设置 KeyEvent 内部 | 更新日期: 2023-09-27 18:15:22
是否有一种方法可以设置一个条件,即在按下键后,如果已经经过了5秒,那么将执行某个方法。
e。我在gridview中有keyup事件:
private void Grid_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
}
else
{
if (atimehasalreadypassed == 5seconds)
{
//execute
}
}
}
的问题是计数可能在传递keyDown后开始,所以它将只有1秒。所以我需要一些计数外U.I线程/后台线程…
注意:我不需要延迟,我只需要知道是否5秒后已经通过keyEvent…
这可能是你需要的:
private void Grid_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
}
else
{
if (SecondsPassed(5))
{
//execute
}
}
}
private DateTime _lastCallTime = new DateTime();
private bool SecondsPassed(double seconds)
{
// calculate time difference
var timeSpan = new TimeSpan(DateTime.Now.Ticks - _lastCallTime.Ticks);
// reset timing
_lastCallTime = DateTime.Now;
if (timeSpan.TotalSeconds > seconds)
{
return true;
}
return false;
}
请注意,您可能需要手动初始化"_lastCallTime",这取决于您的使用。