2008-10-02 3 views
0

У меня есть форма с индикатором выполнения и кнопкой отмены, которая отображается как процесс запуска. Для свойства кнопки «Отменить» установлено значение «Истина», поэтому нажатие «escape» отменяет процесс.Предупреждение Введите ключ от кнопки стрельбы, даже в vb6

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

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

Я пробовал установить свойство TabStop кнопки на «false» - без изменений.

ответ

2

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

+0

Да, добавьте еще один элемент управления, который ничего не делает и должен иметь фокус. – VVS

+0

Я думаю, что это отвечает на мой первоначальный вопрос, поэтому, чтобы быть справедливым, я должен принять его. Благодарю. (Несмотря на то, что Серджио уже говорил мне об изменении чего-то еще ;-) –

+0

Если вы примете этот проект, у пользователя все равно будет возможность перейти к кнопке отмены и нажать клавишу пробела для отмены. Пользователю не потребуется мышь. –

7

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

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

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

Мои 2 цента

+0

Yeh - справедливая точка и диалоговое окно подтверждения - это именно то, что происходит на данный момент. Я подбрасываю то, что более раздражает, диалог подтверждения, когда вы намеренно отжимаете отмену или клавиша ввода не работает. (Помните, что ESCAPE все еще работает) –

+0

Но что, если я случайно удалю Escape и процесс остановится? Это было бы намного более раздражающим, что, по моему мнению, диалог подтверждения. Но я знаю, что у меня нет всего контекста ситуации, и это может быть не так. Просто мысль. –

+0

Люди используются для подтверждения диалогов. Первое правило дизайна пользовательского интерфейса - создать знакомый дизайн. – workmad3

 Смежные вопросы

  • Нет связанных вопросов^_^