1
我需要捕获在特定时间段内按下的击键,例如说300毫秒。所以当我按'a',并在300毫秒内我按'b',那么我需要字符串“ab”。但是如果在按下'b'300ms后按'c',那么我想要“c”。如何在特定时间段内捕获DataGridView按键事件中按下的按键?
我需要这个快速跳转到以快速按键开始的DataGridView的单元格。
我需要捕获在特定时间段内按下的击键,例如说300毫秒。所以当我按'a',并在300毫秒内我按'b',那么我需要字符串“ab”。但是如果在按下'b'300ms后按'c',那么我想要“c”。如何在特定时间段内捕获DataGridView按键事件中按下的按键?
我需要这个快速跳转到以快速按键开始的DataGridView的单元格。
我不完全确定我理解你的问题,但我相信你想要一种方法来执行一个代码块,如果两个键被按下,或者另一个代码块,如果三个键被按下。另外,您希望每个按键都在300ms之内。如果我的理解,那么这段代码应该做你想要什么:
private System.Diagnostics.Stopwatch Watch = new System.Diagnostics.Stopwatch();
private string _KeysPressed;
public string KeysPressed
{
get { return _KeysPressed; }
set
{
Watch.Stop();
if (Watch.ElapsedMilliseconds < 300)
_KeysPressed += value;
else
_KeysPressed = value;
Watch.Reset();
Watch.Start();
}
}
private void KeyUpEvent(object sender, KeyEventArgs e)
{
KeysPressed = e.KeyCode.ToString();
if (KeysPressed == "AB")
lblEventMessage.Text = "You've pressed A B";
else if (KeysPressed == "ABC")
lblEventMessage.Text = "You've pressed A B C";
else
lblEventMessage.Text = "C-C-C-COMBOBREAKER!!!";
}
此代码假定一个标签,lblEventMessage,有所为触发KeyUp事件(我有一个文本框去)。
非常有帮助。谢谢。 –
[你有什么尝试?](http://whathaveyoutried.com) – Blachshma
我在谷歌搜索,但无法得到正确的结果。我知道如何用单按键做到这一点,但我不知道如何捕捉快速按键。 – Prince23
我认为你可以使用'KeyDown event'来捕获这一切,并且由于你正在谈论300ms,你将需要一个计时器以及 – MethodMan