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