首页 > 解决方案 > C# Keypress hook - 退格键只删除最后一个字符

问题描述

当我想删除最后几个字符并按退格键(按、按、按)时,一切正常,但如果我按退格键一次并按住它更长时间,它只会删除最后一个字符而不是几个. 如何改进它?

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.
        }
    }
}

标签: c#hookbackspace

解决方案


推荐阅读