visual textbox1 studio entre ejemplos ejemplo diferencia .net

.net - textbox1 - keyup jquery ejemplos



¿Cuál es la diferencia entre KeyDown y KeyPress en.NET? (10)

¡Aparentemente hay muchos malentendidos sobre esto!

La única diferencia práctica entre KeyDown y KeyPress es que KeyPress transmite el carácter resultante de una pulsación de tecla, y solo se llama si hay uno.

En otras palabras, si presiona A en su teclado, obtendrá esta secuencia de eventos:

  1. KeyDown: KeyCode = Keys.A, KeyData = Keys.A, Modificadores = Keys.None
  2. KeyPress: KeyChar = ''a''
  3. KeyUp: KeyCode = Keys.A

Pero si presiona Shift + A , obtendrá:

  1. KeyDown: KeyCode = Keys.ShiftKey, KeyData = Keys.ShiftKey, Shift, Modificadores = Keys.Shift
  2. KeyDown: KeyCode = Keys.A, KeyData = Keys.A | Keys.Shift, Modifiers = Keys.Shift
  3. KeyPress: KeyChar = ''A''
  4. KeyUp: KeyCode = Keys.A
  5. KeyUp: KeyCode = Keys.ShiftKey

Si mantiene presionadas las teclas durante un tiempo, obtendrá algo como:

  1. KeyDown: KeyCode = Keys.ShiftKey, KeyData = Keys.ShiftKey, Shift, Modificadores = Keys.Shift
  2. KeyDown: KeyCode = Keys.ShiftKey, KeyData = Keys.ShiftKey, Shift, Modificadores = Keys.Shift
  3. KeyDown: KeyCode = Keys.ShiftKey, KeyData = Keys.ShiftKey, Shift, Modificadores = Keys.Shift
  4. KeyDown: KeyCode = Keys.ShiftKey, KeyData = Keys.ShiftKey, Shift, Modificadores = Keys.Shift
  5. KeyDown: KeyCode = Keys.ShiftKey, KeyData = Keys.ShiftKey, Shift, Modificadores = Keys.Shift
  6. KeyDown: KeyCode = Keys.A, KeyData = Keys.A | Keys.Shift, Modifiers = Keys.Shift
  7. KeyPress: KeyChar = ''A''
  8. KeyDown: KeyCode = Keys.A, KeyData = Keys.A | Keys.Shift, Modifiers = Keys.Shift
  9. KeyPress: KeyChar = ''A''
  10. KeyDown: KeyCode = Keys.A, KeyData = Keys.A | Keys.Shift, Modifiers = Keys.Shift
  11. KeyPress: KeyChar = ''A''
  12. KeyDown: KeyCode = Keys.A, KeyData = Keys.A | Keys.Shift, Modifiers = Keys.Shift
  13. KeyPress: KeyChar = ''A''
  14. KeyDown: KeyCode = Keys.A, KeyData = Keys.A | Keys.Shift, Modifiers = Keys.Shift
  15. KeyPress: KeyChar = ''A''
  16. KeyUp: KeyCode = Keys.A
  17. KeyUp: KeyCode = Keys.ShiftKey

Observe que KeyPress ocurre entre KeyDown y KeyUp , no después de KeyUp , como muchas de las otras respuestas han indicado, que KeyPress no se llama cuando un personaje no se genera, y que KeyDown se repite mientras se mantiene presionada la tecla, también contraria a muchas de las otras respuestas.

Ejemplos de claves que no resultan directamente en llamadas a KeyPress :

  • Shift , Ctrl , Alt
  • F1 a F12
  • Teclas de flecha

Ejemplos de teclas que dan lugar a llamadas a KeyPress :

  • De la A a la Z , de 0 a 9 , etc.
  • Barra espaciadora
  • Tab (KeyChar = ''/ t'', ASCII 9)
  • Enter (KeyChar = ''/ r'', ASCII 13)
  • Esc (KeyChar = ''/ x1b'', ASCII 27)
  • Retroceso (KeyChar = ''/ b'', ASCII 8)

Para los curiosos, KeyDown se correlaciona aproximadamente con WM_KEYDOWN , KeyPress con WM_CHAR y KeyUp con WM_KEYUP . WM_KEYDOWN se puede llamar menos que el número de repeticiones de tecla, pero envía un conteo repetido, que, IIRC, WinForms usa para generar exactamente un KeyDown por repetición.

¿Cuál es la diferencia entre los eventos KeyDown y KeyPress en .net ?


Del desarrollador de blogs :

Para entender la diferencia entre la pulsación de teclas y la pulsación de teclas, es útil comprender la diferencia entre un "personaje" y una "tecla" . Una "tecla" es un botón físico en el teclado de la computadora, mientras que un "carácter" es un símbolo escrito al presionar un botón. En teoría, los eventos de keydown y keyup representan teclas presionadas o liberadas, mientras que el evento keypress representa un carácter que se está escribiendo. La implementación de la teoría no es la misma en todos los navegadores.

Nota: También puede probar Key Event Tester (disponible en el sitio mencionado anteriormente) para comprender este concepto.




KEYUP se capturará solo una vez, al soltar la tecla presionada, independientemente de cuánto tiempo se mantenga presionada la tecla, por lo que si desea capturar dicha prensa solo una vez, KEYUP es el evento adecuado para capturar.


KeyPress es un nivel de abstracción más alto que KeyDown (y KeyUp). KeyDown y KeyUp están relacionados con el hardware: la acción real de una tecla en el teclado. KeyPress es más "Recibí un personaje del teclado".


KeyPress solo se dispara con caracteres imprimibles y se dispara después del evento KeyDown. Dependiendo de la configuración de retraso de tipeo, puede haber múltiples eventos KeyDown y KeyPress, pero solo un evento KeyUp.

KeyDown
KeyPress
Tecla Arriba


Keydown está presionando la tecla sin soltarla, Keypress es un ciclo completo de presionar y soltar.

Dicho de otra manera, KeyDown + KeyUp = Keypress


La explicación más fácil:

Mantuve presionada la tecla ''d'' por un segundo y luego la solté.

dddddd

el evento de pulsación sucedió una vez antes de que apareciera la primera d en la pantalla, el evento de pulsación de tecla sucedió 6 veces y el evento de tecla ocurrió después de que d apareció la última en la pantalla.