Событие KeyDown не сработало

У меня есть форма, которая просит пользователя нажать Qклавишу 3 раза. Когда он это сделает, форма исчезнет (вот почему я использую форму без полей, чтобы предотвратить попадание X-Button). Сама форма не модальная.

Это код, который я использую для обработки KeyDownсобытия:

private void ConfirmForm_KeyDown_1(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Q)
    {
        if (++count == 3)
            this.Close();
    }
}

Теперь я не хочу иметь дополнительный элемент для этой формы на панели задач, поэтому я установил для ShowInTaskbarсвойства значение false. Проблема в том, что KeyDownсобытие больше не запускается, когда форма не отображается на панели задач - когда это происходит, все работает просто отлично.

Кто-нибудь знает, как я могу исправить эту ошибку?

c#,events,taskbar,keydown,

5

Ответов: 1


11 принят

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

Редактировать: Кроме того, если вы хотите предотвратить нажатие кнопки X, вы можете установить ControlBox в False, что скрывает кнопки строки заголовка.

C #, события, панель задач, KeyDown,
Похожие вопросы