Pitido molesto con Citrix

14/09/2006 - 09:14 por confiar en un ensamblado | Informe spam
Hola: En mis aplicaciones desarrolladas en visual NET. cuando las ejecuto con
CITRIX y pulsar enter en las etiquetas de entrada de datos para saltar de
etiqueta me emite un pitido muy molesto que no cosigo retirar, esto no me
pasa si ejecuto la aplicación en la red (solamente con citrix) para utilizar
el enter tengo el siguiente código:
Private Sub vusuarios_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode() = Keys.Enter Then
SendKeys.Send("{Tab}")
End If
End Sub

Es curioso porque en los combobox no ocurre.
muchas Gracias. Un saludo.
 

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
17/09/2006 - 04:14 | Informe spam
"confiar en un ensamblado"
escribió en el mensaje
news:
Hola: En mis aplicaciones desarrolladas en visual NET. cuando las ejecuto
con
CITRIX y pulsar enter en las etiquetas de entrada de datos para saltar de
etiqueta me emite un pitido muy molesto que no cosigo retirar, esto no me
pasa si ejecuto la aplicación en la red (solamente con citrix) para
utilizar
el enter tengo el siguiente código:
Private Sub vusuarios_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode() = Keys.Enter Then
SendKeys.Send("{Tab}")
End If
End Sub

Es curioso porque en los combobox no ocurre.
muchas Gracias. Un saludo.



Hola.

No es tan curioso: en los comboBox [Enter] es una tecla valida (selecciona
un elemento de la lista), en los TextBox no. El dichoso pito lo que hace es
advertirle al usuario que ha pulsado una tecla inválida: es la conducta
estandar de Windows cuando no hay un boton de comando por omisión.

SendKeys era molesto en VB6, y creo recordar haber tenido una mala
experiencia con SendKeys en VB.NET (hace tiempo que no he podido usarlo para
cosas serias: sigo amarrado a una aplicacion en VB6). En cualquier caso, me
parece recordar que es preferible usar SendKeys.SendWait en lugar del simple
Send.

Pero la respuesta a tu pregunta es que tienes que eliminar el Enter, de tal
manera que no llegue al manejador estandar del evento. Y eso lo haces
agregando a tu codigo la instruccion e.Handled = True, es decir:

If e.KeyCode() = Keys.Enter Then
SendKeys.Send("{Tab}")
e.Handled = True
End If

Salud!

Preguntas similares