将箭头键焦点更改为移动播放器而不是按钮

时间:2017-03-10 11:02:43

标签: c# forms button arrow-keys

所以我在c#中使用表格(类似于蛇游戏)构建游戏,我想用箭头键导航玩家。在玩游戏的网格(板)附近,我有几个按钮,如;暂停,开始等。当我单击箭头键时,焦点位于按钮上(它正在浏览按钮),而不是移动播放器。我怎么能改变这个?

的问候,

亨克

1 个答案:

答案 0 :(得分:0)

首先,您必须将表单KeyPreview设置为true并在设计器中订阅表单的KeyDown事件,或将此行添加到表单的构造函数中:

this.KeyPreview = true;
this.KeyDown += Form1_KeyDown;

然后,为keydown事件添加此代码。基本上,它告诉事件,如果按下的键是箭头之一,则按键已经被处理:

private void Form3_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode==Keys.Up || e.KeyCode == Keys.Down || e.KeyCode == Keys.Left ||e.KeyCode == Keys.Right)
    {
        e.Handled = true;
        MovePlayer(e.KeyCode);
    }
}

private void MovePlayer(Keys key)
{
    switch (key)
    {
        case Keys.Up:
            // your player moveup code
            break;
        ...
    }
}