Кнопка WinForm сохраняет фокус - PullRequest
1 голос
/ 07 октября 2010

У меня есть winform с несколькими кнопками, когда я нажимаю кнопку, она запускает обработчик события Click, а затем кнопка остается выбранной, поэтому, если я нажму клавишу ВВОД на клавиатуре, она запустит обработчик события Click для этой кнопки снова.

Полагаю, это поведение по умолчанию для кнопки (удержание ее нажатой при нажатии), но я не могу найти способ удалить это поведение.

Я попробовал методы Focus() и Select() для другого элемента управления, но кнопка все еще выбрана / сфокусирована / активна

любая помощь?

1 Ответ

2 голосов
/ 07 октября 2010

Если вы не хотите, чтобы пользователь нажимал клавишу ввода и снова запускал событие, пока оно еще работает, вы можете отключить кнопку во время выполнения кода обработчика (с параметром finally, если что-то не так)

Изменить:

private void btnOk_Click(object sender, EventArgs e)
{
    btnOk.Enable = false;
    try
    {
        // do stuff
    }
    finally
    {
        btnOk.Enable = true;
    }
}
...