Como impedir que um controle WinForms de ouvir o teclado
Pergunta
Para uma determinada inputform, eu gostaria de torná-lo possível fazer entrada com o teclado. Eu sei como ler as chaves através KeyPressed e KeyUp, mas o problema é que quando um controle tem o foco e o usuário pressiona a tecla Enter, que o controle recebe o evento um clique. É possível evitar esse comportamento? Ou é possível saber se um evento Click foi demitido pelo mouse ou pelo teclado?
Solução
Será que isso ajuda? De Microsoft Knowledge Base
Mover o código do botão da button.Click () para um button.MouseClick ()
Outras dicas
Este seria mais fácil se você pudesse descrever a situação e o comportamento exato que você quer ...:)
Você pode definir:
Form.KeyPreview = True
Isso envia eventos importantes para o formulário em primeiro lugar, e depois para o controle. Isto dá-lhe a oportunidade de pegar Principais eventos no formulário e 'cancelar' eles:
e.Handled = True
Além disso, certifique-se não tiver definido a AcceptButton para o formulário!
Você também pode ouvir eventos de teclado e filtrar as chaves.