Событие onKeyPress не работает, если текстовое поле в форме имеет автозаполнение? - PullRequest
0 голосов
/ 20 января 2011

У меня есть форма с keypreview true. OnKeyPress (если ключ - escape) Я закрывал форму.

Позже я установил autocomplete с первым текстовым полем в форме. Автозаполнение работает, но событие OnKeyPress не работает. Если курсор не находится в текстовом поле с автозаполнением, OnKeyPress работает и все еще закрывает форму на клавише escape.

Пожалуйста, руководство, как я могу иметь оба? Autocomplete с закрывающей формой при выходе.

1 Ответ

2 голосов
/ 20 января 2011

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

[DllImport("user32.dll")]
private static extern bool RegisterHotKey (int hwnd, int id, int fsModifiers, int vk);

[DllImport("user32.dll")]
private static extern bool UnregisterHotKey (int hwnd, int id);

См. здесь или здесь

...