Windows Скрытая панель форм с кнопками все еще активна - PullRequest
0 голосов
/ 06 августа 2020

Во-первых, я должен использовать формы windows. Я знаю, что это плохо для создания игр, но для школы.

Я разработал меню паузы для своей игры, используя панель с кнопками на ней. Вот код, когда я нажимаю escape, чтобы открыть меню паузы.

private void Game_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Escape)
    {
        if (paused == true)
        {
            paused = false;
            pnlPaused.Visible = false;
            tmrAnimations.Start();
            tmrGame.Start();
            tmrJump.Start();
            tmrPlayerMovement.Start();
            tmrLeftMovement.Start();
            tmrRightMovement.Start();
        }
        else
        {
            pnlPaused.BringToFront();
            pnlPaused.Visible = true;
            pnlPaused.BackColor = Color.FromArgb(80, 79, 249, 249);
            paused = true;
            tmrAnimations.Stop();
            tmrGame.Stop();
            tmrJump.Stop();
            tmrPlayerMovement.Stop();
            tmrLeftMovement.Stop();
            tmrRightMovement.Stop();
        }
    }
}

Этот код работает нормально, пока я не нажму одну из кнопок. При нажатии любой кнопки, даже если она не содержит кода, невозможно нажать escape, чтобы снова возобновить паузу. С этой кнопкой возобновления запускаются все таймеры, и игра снова начинает работать, но форма не регистрирует нажатия клавиш.

private void btnResume_Click(object sender, EventArgs e)
{
    paused = false;
    pnlPaused.Visible = false;
    tmrAnimations.Start();
    tmrGame.Start();
    tmrJump.Start();
    tmrPlayerMovement.Start();
    tmrLeftMovement.Start();
    tmrRightMovement.Start();
}

Я попытался добавить этот код в код нажатия кнопки

pnlPaused.Enabled = false;

Этот код работает для повторного включения пользовательского ввода, но каждый раз, когда нажимается клавиша, воспроизводится звук ошибки windows, тот, когда вам нужно отклонить предупреждение и c, но попробуйте отключить (надеюсь, это имеет смысл ). Кто-нибудь знает другой способ исправить то, что панель все еще активна после скрытия или предотвращения звука windows?

1 Ответ

0 голосов
/ 06 августа 2020

Я понял, что все, что мне нужно сделать, это расфокусировать кнопку с помощью

this.Focus();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...