Bom dia, Tudo bem?
Qual seria a diferença entre entre KeyDown e KeyPress? Não consegui entender.
Bom dia, Tudo bem?
Qual seria a diferença entre entre KeyDown e KeyPress? Não consegui entender.
Oi Julia,
A diferença entre KeyDown
e KeyPress
reside no momento em que cada evento é disparado e no tipo de informação que eles fornecem. 💪
KeyDown: Este evento é acionado quando uma tecla é pressionada, independentemente de qual tecla seja (incluindo teclas de função, setas, etc.). Ele fornece informações sobre a tecla física que foi pressionada, através do código da tecla (KeyCode). É útil para capturar eventos de teclas que não geram caracteres imprimíveis. 💻
KeyPress: Este evento é acionado após o evento KeyDown
, mas apenas se a tecla pressionada gerar um caractere imprimível. Ele fornece o código do caractere (AsciiCode) correspondente à tecla pressionada, levando em consideração o layout do teclado e as teclas modificadoras (Shift, Ctrl, Alt). É útil para capturar a entrada de texto. 📝
Em resumo, KeyDown
lida com a ação física de pressionar uma tecla, enquanto KeyPress
lida com o caractere resultante dessa ação. 👍
Exemplo prático:
Imagine que você pressione a tecla "A" no seu teclado.
KeyDown
é disparado primeiro, informando que a tecla "A" (ou o código da tecla correspondente) foi pressionada.KeyPress
é disparado, informando que o caractere "a" (ou o código ASCII correspondente) foi gerado.Se você pressionar a tecla "PAGEUP" ou "PAGEDOWN", apenas o evento KeyDown
será disparado, pois essas teclas não geram caracteres imprimíveis. 🤔
Para saber mais:
Continue explorando e aprofundando seus conhecimentos!
Bom dia Luis, Tudo bem ?
No caso, as teclas que geram o evento KeyPress são todas as que possuem um código ASCII correspondente, certo?
Letras Pontuações Números Espaço Delete
E as demais teclas não geram KeyPress, correto?
Bom dia,
Um evento KeyPress pode ocorrer quando qualquer uma das seguintes chaves é pressionada:
Um evento KeyPress não ocorre sob as seguintes condições:
Observação O BACKSPACE faz parte do conjunto de caracteres ANSI, mas DELETE não é. Excluir um caractere em um controle usando o BACKSPACE causa um evento KeyPress; excluir um caractere usando DELETE não.