Pregunta: | 1278 - VACIAR EL BUFFER DEL TECLADO |
Autor: | Rodrigo Goncalves |
Hola! Estoy desarrollando una aplicacion y necesito poder vaciar el buffer del teclado y el mousse en un momento determinado. Es decir, luego de atender un evento del usuario (mousse o teclado), necesito que antes de salir del evento borre todos las acciones que el usuario hizo mientras esperaba. Desde ya mil gracias. |
Respuesta: | Eduardo Cañedo |
Conozco una forma de controlar el buffer durante la acción, no se si sea lo que buscas. En los eventos KeyDown, KeyUp, KeyPress, MouseDown y MouseUp encontramos las variables KeyCode, KeyAscii y Button, las cuales podemos manipular antes de que concluya el evento, podemos cambiar estos valores en el transcurso del evento a nuestra conveniencia, para anular los teclas se usa KeyCode = 0 ó KeyAscii = 0, dependiendo del evento y para el mouse se usa el Button = -1, ejms: El Text1 no contendra nada por mas que se teclee: Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = 0 End Sub En el Text1 se escribirá solo la letra "a" sea cual sea la tecla que se oprima: Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = 97 End Sub Puedes usar tambien el evento KeyPreview del Form y ponerlo en True, para que independientemente del objeto que tenga el Focus caches las teclas que se han presionado y manipularlas en dichos eventos pero en el Form, ejm: En este caso te posicionas en el Text1 y escribes, ademas de no aparecer texto en el Text1, el mensaje NO aparecera, por que se ha anulado la tecla desde la Form y este tiene el KeyPreview = True: Private Sub Form_KeyPress(KeyAscii As Integer) KeyAscii = 0 End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) MsgBox "¿Que se presiono?" End Sub |