| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | |  | | | 
| 
12-10-2006, 16:35:26
|  | Gran Participación en el Foro | | Registrado: jun 2006 Ubicación: San Carlos, VIII Reg. Posts: 415
| | Como activar tecla esc correctamente para salir de un form Hola amigos, tengo el código que activa la tecla esc y pueda salir de un form, pero el problema sucede cuando el focus lo obtiene un datacombo y al presionar la tecla esc ya no funciona, por favor alguien me podría explicar, saludos Código: Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyEscape Then 'Se ha pulsado ESC
'Descargamos el formulario
Unload Me
End If
End Sub Aca el cod, pero cuando el cursor se encuentra en un datacombo ya no funciona el esc...
__________________
TAMD MYM
| 
12-10-2006, 17:29:44
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.404
| | 1º.- En el Form marca la propiedad KeyPreview = True
2º.- Incorpora estas líneas de código Código: Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 27 Then Form_Unload(1)
End Sub Si tienes un comando diseñado para cerrar el formulario, en lugar de Form_Unload, ejecuta ese comando. | 
12-10-2006, 19:32:23
|  | Gran Participación en el Foro | | Registrado: jun 2006 Ubicación: San Carlos, VIII Reg. Posts: 415
| | Hola, gracias Sr. Movilla por su oportuna respuesta, tengo un comando para cerrar, pero lamentablemente, cuando el foco se encuentra en cualquiera de los datacombo la tecla ESC pierde su función, a qué se deberá esto?? :smt017
__________________
TAMD MYM
| 
12-10-2006, 19:40:29
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.404
| | ¿Pero ya has incorporado lo que te aconsejé en el anterior mensaje? Porque si le activas el KeyPreview no tiene por qué ocurrirte eso... | 
12-10-2006, 21:40:48
|  | Gran Participación en el Foro | | Registrado: jun 2006 Ubicación: San Carlos, VIII Reg. Posts: 415
| | Hola, correcto en todos mis formularios ocupo el keypreview = true, ya que también uso esto: Código: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{tab}"
KeyAscii = 0
End Sub Ya que uso el enter para pasar de un control a otro, pero lo extraño que cuando presiono ESC y el focus se encuentra en un datacombo, sólo ahi deja de funcionar la tecla, ojo que los datas están conectados con ADO y tienen la propiedad style = 2, no sé si tiene que ver... que sucede??
__________________
TAMD MYM
| 
12-10-2006, 22:07:56
| | Buena Participación en el Foro | | Registrado: mar 2006 Posts: 32
| | Hola a lo mejor digo una tonteria que ya has probado, pero has intentado poner en el keypress del datacombo la llamada al comando cerrar? | 
12-10-2006, 23:04:43
| | Moderador | | Registrado: dic 2002 Ubicación: Oviedo - Asturias Posts: 1.251
| | Algo debes tener mal, porque yo lo acabo de probar y funciona correctamente. Sube el código que te da problemas y lo miramos, ya que probablemente sea una propiedad cambiada u otro código que no nos has dicho porque no le has dado importancia
:smt004 | 
13-10-2006, 21:23:01
|  | Gran Participación en el Foro | | Registrado: jun 2006 Ubicación: San Carlos, VIII Reg. Posts: 415
| | Hola, la verdad no sé cuál es el código que da problemas, sólo tengo ese código en el form Código: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{tab}"
KeyAscii = 0
End Sub Código: Private Sub Form_KeyPress(KeyAscii As Integer)
'If KeyAscii = vbKeyEscape Then 'Se ha pulsado ESC
'Descargamos el formulario
' Unload Me
' End If
If KeyAscii = 27 Then Unload Me
End Sub Funciona correcto, pero cuando el foco esta en algun data ya deja de funcionar, los data en la propiedad Style los tengo en 2, y conectados con ADO, ya no sé cuál será el problema ...
__________________
TAMD MYM
| 
13-10-2006, 21:27:49
|  | Gran Participación en el Foro | | Registrado: jun 2006 Ubicación: San Carlos, VIII Reg. Posts: 415
| | Hola, ahora coloque un datacombo en form y un ado, ni siquiera los conecte, el datacombo le cambie la propiedad style una por una y cuando tiene el foco o sea cuando el cursor se encuentra en él, deja de funcionar el ESC alguien puede hacer eso y enviarme el código por favor ... :smt017
__________________
TAMD MYM
| 
13-10-2006, 23:05:50
|  | Gran Participación en el Foro | | Registrado: jul 2005 Ubicación: Libertad / Merlo prov Buenos Aires Posts: 206
| | No se porqué sucede esto. pero una solución posible es poner un commandbutton con su propiedad Cancel = True y en este poner el código que debe ejecutarse al presionar ESC. La única contra es que para que funcione el commandbutton debe estar visible.
Por lo general, lo nombre como Salir, pero en vez de poner todo el código aquí, tan solo hago Unload Me, y en el evento QueryUnload pongo todo el código que necesito. Ya que el usuario puede apretar Salir, ESC o la X (la X de cerrar formulario).
Espero que te sirva de algo. | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | La franja horaria es GMT. Ahora son las 22:58:32.
Powered by vBulletin® Version 3.6.8 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design
|  |