Visual Basic - Funcion KeyDown

Life is soft - evento anual de software empresarial
 
Vista:

Funcion KeyDown

Publicado por marisela (2 intervenciones) el 11/03/2009 20:22:55
Hola a todos.
alguien sabe como poder eliminar el sonido que emite la función KeyDown cuando se activa la tecla (en este caso me emite un sonido como un beep al presionar la tecla Enter).

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Text2.SetFocus
End If
End Sub

este código permite pasar del Text1 al Text2 al presionar la tecla enter, pero al hacerlo me emite ese sonido que nose como eliminar.
Agradecería alguien me ayudara.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funcion KeyDown

Publicado por A.H.H. (28 intervenciones) el 11/03/2009 22:18:07
Hola el siguiente codigo lo elimina, en vez de usar keydown en el ejemplo siguiente he usado keypress.Hay que hacer que el keyascii sea igual a 0.
Y ponerlo tambien el el segundo texbox porque si solo pones el codigo en el primero y le das al enter y ya tiene el focoel segundo pues seguiria sonando.

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
Text2.SetFocus
End If
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
End If
End Sub

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion KeyDown

Publicado por marisela (2 intervenciones) el 12/03/2009 02:58:02
Gracias por responder.
el problema es que ese textbox está enlazado tambien con la tecla F1 y F2 teclas que no reconoce el KeyPress así que no puedo cambiarme a keypress, tengo que lograr eliminar ese sonido con keyDown solamente.
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Hazlo en KeyPress

Publicado por Quique (51 intervenciones) el 12/03/2009 17:07:45
No importa que esté "enlazado" a F1 y F2, no le cambies nada al KeyDown.
Pon el ejemplo que te dieron en KeyPress.
Por cierto, KeyDown no es función, sino evento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion KeyDown

Publicado por A.H.H. (28 intervenciones) el 12/03/2009 19:57:03
Hola mejor asi, pon en el evento keydown solamente el cambio de foco si se pulsa enter y en los eventos keypress de cada textbox el cambio de asccii de 13 que es el valor de vbkeyreturn(enter) a 0.Veras que funciona.

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
Text2.SetFocus
End If
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
End If
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
End If
End Sub

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion KeyDown

Publicado por Abel (1 intervención) el 06/06/2010 01:32:34
A mi ese código no me funcionó para lo que yo queria. Te copio lo que yo hice.

Para empezar, asigno la propiedad de Tabulador a la tecla Enter en el formulario.

------------------------------------------------------------------------------------------------------------
Private Sub frmPrincipal_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
If e.KeyChar = Chr(13) Then
SendKeys.Send("{tab}")
End If
End Sub
------------------------------------------------------------------------------------------------------------

Y ahora para ELIMINAR / QUITAR ese molesto sonido (BEEP).

Encontré dos formas de hacerlo, una en el mismo evento KeyPress del Formulario.

Ejemplo:
------------------------------------------------------------------------------------------------------------
Private Sub frmPrincipal_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
If e.KeyChar = Chr(13) Then
SendKeys.Send("{tab}")
e.handled = true
End If
End Sub
------------------------------------------------------------------------------------------------------------

Pero claro, si lo hacia asi, el resto de funciones que tenia asignado a eventos KeyPress de mis textbox, como por ejemplo que al pulsar enter en un txtCliente, me mostrara en un label el nombre del cliente, entonces no me lo mostraba, no realizaba ninguna operación programada.

Asi que lo hice de la otra forma que se me ocurrió.

En cada textbox en el evento KeyPress programé lo siguiente:
------------------------------------------------------------------------------------------------------------
If e.KeyChar = Chr(13) Then
e.Handled = True
End If
------------------------------------------------------------------------------------------------------------

Ejemplo:
------------------------------------------------------------------------------------------------------------
Private Sub DTFecha_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DTFecha.KeyPress
If e.KeyChar = Chr(13) Then
e.Handled = True
End If
End Sub
------------------------------------------------------------------------------------------------------------

Espero que sirva de ayuda, sino al usuario en concreto, a cualquiera que necesite sacar ese molesto Beep, sin por ello perder el resto de operaciones.

Un SALUDO!

Para Microsoft Visual Studio.net 2005
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose Bueno

Funcion KeyDown

Publicado por Jose Bueno (1 intervención) el 02/06/2015 18:02:06
Solo coloca en el Keypress, sin otro codigo, keyascii=0, en el evento keydown colocas todo tu codigo y no emite sonido beep ni por el enter ni por ninguna otra tecla pulsada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar