C # Завершение движения изображения нажатием клавиши - PullRequest
0 голосов
/ 05 ноября 2018

Я новичок в C # и хотел знать, как я могу сделать так, чтобы, как только пользователь нажал клавишу ввода, текущее местоположение изображения стало его фиксированным местоположением. Я думал, что лучший способ сделать это - использовать цикл 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 голосов
/ 05 ноября 2018

В этом решении я использовал глобальный объект bool и изменил флаг на true после нажатия клавиши ввода. У меня есть форма с Picture Box, и на событие 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);
            }
        }
    }

После нажатия кнопки ввода bIsEnterKeyPressed изменяется на true, и после этого позиция не изменится.

...