Impedir a tecla Enter de disparar clique do botão evento em VB6
-
03-07-2019 - |
Pergunta
Eu tenho um formulário com uma barra de progresso e um botão que é apresentado como um processo corre cancelar. Os botões "Cancelar" propriedade é definida como true para escapar pressionando, cancela o processo.
Mas, como o botão é o único controle sobre a forma capaz de tirar o foco, deve o usuário, inadvertidamente, pressione enter (ou barra de espaço), enquanto o processo estiver em execução ele será cancelado.
Eu ter evitado a barra de espaço de trabalho, definindo KeyPreview como true (no formulário) em seguida, definindo KeyAscii a 0, mas esta abordagem deson't parecem trabalhar para a tecla enter como o evento é acionado o botão primeiro clique.
Eu tentei definindo a propriedade TabStop do botão para "false" -. Sem alteração
Solução
Adicionar um botão padrão com 1x1 tamanho, nenhuma legenda, nenhuma borda, etc. Faça um manipulador para ele que não faz nada. A tecla Escape ainda vai fazer um cancelamento como faz agora.
Outras dicas
Na minha opinião, a chave Entre deverá ativar o botão cancelar. Ou exigir que o usuário chegar para o mouse? por quê?
Eu sugiro adicionando apenas um diálogo de confirmação depois que o usuário cancela a operação, então se alguém acidentalmente pressiona a tecla Enter tem a chance de retomar a dizer 'não, eu não quero cancelar'.
Mas como um usuário eu estaria chateado se o botão Cancelar tem o foco e não consigo ativá-lo pressionando a tecla Entre no meu teclado.
Meus 2 centavos