C#2D游戏多个键不起作用

时间:2015-12-28 23:40:05

标签: c# winforms

我知道这个问题已被多次询问,但我找不到正确答案。

我的问题是我有一个WinForm,我喜欢按多个键来制作xD但是如果我尝试按numpad7,8和4或任何其他组合 然后它不会工作它只显示什么,但我已按下所有这些键

我试过这个

private void GameScreen_KeyDown(object sender, KeyEventArgs e) {
        try {
            switch (e.KeyCode) {
                case Keys.NumPad0:
                    Console.WriteLine(e.KeyData);
                    changeButtonsColor();
                    break;
                case Keys.NumPad1:
                    gb_7.BackColor = Color.MediumSpringGreen;
                    Console.WriteLine(e.KeyData);
                    break;
                case Keys.NumPad2:
                    gb_8.BackColor = Color.MediumSpringGreen;
                    Console.WriteLine(e.KeyData);
                    break;
                case Keys.NumPad3:
                    gb_9.BackColor = Color.MediumSpringGreen;
                    Console.WriteLine(e.KeyData);
                    break;
                case Keys.NumPad4:
                    gb_4.BackColor = Color.MediumSpringGreen;
                    Console.WriteLine(e.KeyData);
                    break;
                case Keys.NumPad5:
                    gb_5.BackColor = Color.MediumSpringGreen;
                    Console.WriteLine(e.KeyData);
                    break;
                case Keys.NumPad6:
                    gb_6.BackColor = Color.MediumSpringGreen;
                    Console.WriteLine(e.KeyData);
                    break;
                case Keys.NumPad7:
                    gb_1.BackColor = Color.MediumSpringGreen;
                    Console.WriteLine(e.KeyData);
                    break;
                case Keys.NumPad8:
                    gb_2.BackColor = Color.MediumSpringGreen;
                    Console.WriteLine(e.KeyData);
                    break;
                case Keys.NumPad9:
                    gb_3.BackColor = Color.MediumSpringGreen;
                    Console.WriteLine(e.KeyData);
                    break;
            }
        } catch (Exception) {
            Console.WriteLine("fail");
        }
    }

请帮帮我......

1 个答案:

答案 0 :(得分:0)

这无法修复。由于键盘的工作原理,您可以同时按下2个键,但一旦开始按3键,只有某些组合可以使用。除非您更改要按的键,否则无法修改编码来解决此问题。