Предотвратить ввод ключа от нажатия кнопки даже в vb6 - PullRequest
0 голосов
/ 02 октября 2008

У меня есть форма с индикатором выполнения и кнопкой отмены, которая отображается при запуске процесса. Свойство кнопок «Отмена» имеет значение true, поэтому нажатие клавиши escape отменяет процесс.

Но, поскольку кнопка является единственным элементом управления в форме, способным захватить фокус, если пользователь непреднамеренно нажмет ввод (или пробел) во время выполнения процесса, он будет отменен.

Я запретил работу пробела, установив для KeyPreview значение true (в форме), а затем установив для KeyAscii значение 0, но этот подход, похоже, не работает для клавиши ввода, так как сначала происходит событие нажатия кнопки.

Я попытался установить для свойства TabStop кнопки значение "false" - без изменений.

Ответы [ 2 ]

7 голосов
/ 02 октября 2008

На мой взгляд, клавиша ввода должна активировать кнопку отмены. Или вы требуете, чтобы пользователь потянулся за мышью? почему?

Я предлагаю добавить только диалоговое окно подтверждения после того, как пользователь отменяет операцию, поэтому, если кто-то случайно нажмет клавишу Enter, появится возможность снова сказать «нет, я не хочу отменять».

Но как пользователь я был бы раздражен, если бы кнопка «Отмена» имела фокус, и я не могу активировать ее, нажав клавишу ввода на моей клавиатуре.

Мои 2 цента

2 голосов
/ 02 октября 2008

Добавьте кнопку по умолчанию с размером 1x1, без заголовка, без рамки и т. Д. Создайте обработчик, который ничего не делает. Клавиша Escape все равно выполнит отмену, как и сейчас.

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