C#Keypress hook - backspace只删除最后一个char

时间:2018-04-25 06:15:31

标签: c# hook backspace

当我想要删除最后几个字符并按退格键(按,按,按)时,一切正常,但是如果我按一下退格按钮并保持一段时间,它只删除最后一个字符和不少。如何改进?

public void gHook_KeyDown(object sender, KeyEventArgs e)
{
    if ((e.KeyValue >= 48 && e.KeyValue <= 57) || (e.KeyValue >= 65 && e.KeyValue <= 90) || (e.KeyValue >= 96 && e.KeyValue <= 105))
    {
        switch (e.KeyValue)
        {
            case (96): { keysPressed += "0"; } break;
            case (97): { keysPressed += "1"; } break;
            case (98): { keysPressed += "2"; } break;
            case (99): { keysPressed += "3"; } break;
            case (100): { keysPressed += "4"; } break;
            case (101): { keysPressed += "5"; } break;
            case (102): { keysPressed += "6"; } break;
            case (103): { keysPressed += "7"; } break;
            case (104): { keysPressed += "8"; } break;
            case (105): { keysPressed += "9"; } break;
            default:
                { keysPressed += ((char)e.KeyValue).ToString(); }
                break;
        }
    }
    else if (e.KeyValue == 8)
    {
        if (keysPressed.Length > 1)
        {
            keysPressed = keysPressed.Remove(keysPressed.Length - 1);
            // what to do so that the backspace removes more characters on one long press.
        }
    }
}

0 个答案:

没有答案