Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Campanazo molesto

Estas en el tema de Campanazo molesto en el foro de Visual Basic clásico en Foros del Web. En los programas que hago solicito los datos de un artículo, un cliente, un proveedor, o lo que sea en una matrix de varios TextBox. ...
  #1 (permalink)  
Antiguo 16/10/2006, 09:43
 
Fecha de Ingreso: noviembre-2004
Ubicación: Corrientes, Arg.
Mensajes: 129
Antigüedad: 19 años, 5 meses
Puntos: 0
Campanazo molesto

En los programas que hago solicito los datos de un artículo, un cliente, un proveedor, o lo que sea en una matrix de varios TextBox.
En la KeyDown de ellos, si la tecla es Enter se verifica el tipo de datos según el Index y luego se pasa el foco al siguiente. Todo funciona bien, la pega es que al ocurrir esto se produce un campanazo bastante molesto. No encuentro forma de sacarle este sonido, salvo "a lo bruto" anulando el sonido en el sistema operativo, pero no puedo obligar a los clientes que me compran los programas a que hagan tal cosa en sus máquinas.
Seguramente alguien ha pasado por esto y sabe como hacer para sacarle este sonido.
Gracias.
  #2 (permalink)  
Antiguo 16/10/2006, 20:59
 
Fecha de Ingreso: noviembre-2004
Ubicación: Corrientes, Arg.
Mensajes: 129
Antigüedad: 19 años, 5 meses
Puntos: 0
Sonrisa ¡Solucionado!

Casi simultáneamente, en otros dos foros, apareció la respuesta a mi problema: en vez de utilizar la sub KeyDown con KeyCode, hacerlo con la KeyPress/KeyAscii y poner el KeyAscii = 0 una vez verificado que se trata de Enter (13).
En KeyDown, aunque se ponga el KeyCode = 0, el beep sigue sonando.
La única contra (menor) es la imposibilidad de verificar, en KeyPress, cual es el estado de Shift. Pero no todo pueden ser rosas. Está solucionado.
  #3 (permalink)  
Antiguo 17/10/2006, 11:50
Avatar de black_devil  
Fecha de Ingreso: junio-2006
Mensajes: 89
Antigüedad: 17 años, 10 meses
Puntos: 1
Hola, también puede ser, en un form en la propiedad Keypreview de éste, cambiarla a True, y en el evento:

Código:
Private Sub Form_KeyPress(KeyAscii As Integer)
      If KeyAscii = 13 Then
         SendKeys "{tab}"
         KeyAscii = 0
     End If
 End Sub
ó ...


Código:
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = 9 Then KeyAscii = 0
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:25.