#c# #events #taskbar #keydown
#c# #Мероприятия #панель задач #нажатие клавиши
Вопрос:
У меня есть форма, которая просит пользователя нажать 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
событие больше не запускается, когда форма не отображается на панели задач — когда это так, все работает просто отлично.
Кто-нибудь знает, как я могу исправить эту ошибку?
Ответ №1:
Для свойства KeyPreview формы должно быть установлено значение True, чтобы форма получала ключевые события, когда в форме есть другие элементы управления, которые могут получать фокус.
Редактировать: Кроме того, если вы хотите предотвратить нажатие кнопки X, вы можете установить для ControlBox значение False, которое скрывает кнопки в строке заголовка.