C#通过按键结束图像移动

时间:2018-11-05 10:41:40

标签: c# winforms keyboard-events

我是C#的新手,我想知道我该怎么做,以便一旦用户按下Enter键,图像的当前位置就会变成其固定位置。我当时认为最好的方法是使用while循环。帮助将不胜感激。以下是我移动图像的代码:

private void pictureBox1_KeyDown(object sender, KeyEventArgs e)
{
    int x = pictureBox1.Location.X;
    int y = pictureBox1.Location.Y;

    {
        if (e.KeyCode == Keys.Right) x += 50;
        else if (e.KeyCode == Keys.Left) x -= 50;
        else if (e.KeyCode == Keys.Up) y -= 50;
        else if (e.KeyCode == Keys.Down) y += 50;
        pictureBox1.Location = new Point(x, y); 
    }

}

1 个答案:

答案 0 :(得分:0)

在此解决方案中,我使用了全局bool对象,并在按下Enter键后将标志更改为true。 我有一个带有图片框的表单,在form_KeyDown事件中,我做了一些零钱放置代码。

 bool bIsEnterKeyPressed = false;
 private void frmSampleJson_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            bIsEnterKeyPressed = true;
        }
        if (!bIsEnterKeyPressed)
        {
            int x = pictureBox1.Location.X;
            int y = pictureBox1.Location.Y;

            {
                if (e.KeyCode == Keys.Right) x += 50;
                else if (e.KeyCode == Keys.Left) x -= 50;
                else if (e.KeyCode == Keys.Up) y -= 50;
                else if (e.KeyCode == Keys.Down) y += 50;
                pictureBox1.Location = new Point(x, y);
            }
        }
    }

一旦按下Enter键,bIsEnterKeyPressed将更改为true,之后位置将不会更改。