c#winform怎么获取任意键的组合键

问题描述:

比如人物走动 wasd来控制方向

目前在keydown事件里面单一个方向是能正常控制人物走动的,但如果同时按下两个方向键比如wd,人物就直接往右上方走了,怎么样能让人物只在按下一个方向键的时候动,同时按下两个就不动

同时按下两个键会进入两遍keydown,每一次的keycode都只有一个,

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        switch (keyData)
        {
            case Keys.W:
                //想干啥就干啥
                break;
            case Keys.A:
                break;
            case Keys.S:
                break;
            case Keys.T:
                break;
            case Keys.Up:
                break;
            case Keys.Down:
                break;
            case Keys.Left:
                break;
            case Keys.Right:
                break;
        }

        return base.ProcessCmdKey(ref msg, keyData);
    }