如何捕获DataGridView按键事件在特定时间段内按下的按键

本文关键字:时间段 定时间 何捕获 DataGridView 事件 | 更新日期: 2023-09-27 18:05:55

我需要捕获在特定时间段内按下的击键(s),例如300毫秒。因此,当我按下'a'并在300毫秒内按下'b'时,我需要字符串"ab"。但是如果我在按下'b' 300 ms后按下'c',那么我想要'c'。

我需要这个快速跳转到DataGridView的单元格,以快速按下键(s)。

如何捕获DataGridView按键事件在特定时间段内按下的按键

我不完全确定我理解你的问题,但我相信你想要一种方法来执行一个代码块如果两个键被按下,或另一个代码块如果三个键被按下。此外,您希望每次按键之间的间隔不超过300毫秒。如果我没理解错的话,这段代码应该做你想做的:

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事件(我使用了一个文本框)。