|
Página 2 de 3
|
Uso De Enter Para Moverse Entre Campos De Un Formulario
Autor |
Mensaje |
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Uso De Enter Para Moverse Entre Campos De Un Formulario
No, shell. Nadie habló de moverse por las pestañas salvo para indicar que "viejito" ya tiene un evento keypress declarado en una de las tantas que tiene su form y el evento podía interferir con el evento global a nivel de formulario.
Recuerdo el título del tema: Uso De Enter Para Moverse Entre Campos De Un Formulario
Lógicamente, si a viejito lo le funciona es porque algo está haciendo mal. Se han mostrado varios códigos, los cuales por sí solos no solucionan el problema, pero combinando lo aprendido se puede hacer lo que él quiere.
De todos modos, lo conveniente en estos casos es subir un proyecto de ejemplo completo para ver donde radica el fallo. Lógicamente si la aplicación es grande, hay que realizar un ejemplo reducido que reproduzca el problema y muchas veces, con algo de suerte en ese proceso es cuando nos damos cuenta del problema.
Ciñamonos al tema y no mezclemos churras con merinas, porque al final le vamos a liar más a nuestro amigo.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#11 Domingo, 18 Enero 2015, 00:23 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Uso De Enter Para Moverse Entre Campos De Un Formulario
No, shell. Nadie habló de moverse por las pestañas salvo para indicar que "viejito" ya tiene un evento keypress declarado en una de las tantas que tiene su form y el evento podía interferir con el evento global a nivel de formulario.
Eso fue lo primero que pensé, que interferiría el evento de teclado de un campo que hubiera dentro del contenedor con el evento de teclado del propio TabStrip.
jguardon escribió: Recuerdo el título del tema: Uso De Enter Para Moverse Entre Campos De Un Formulario
Naturalmente dijo campo.
jguardon escribió: Ciñámonos al tema y no mezclemos churras con merinas, porque al final le vamos a liar más a nuestro amigo.
Cierto.
Debe ser interesante como lo haga, ya que por lo general no habrá una pestaña igual que otra.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#12 Domingo, 18 Enero 2015, 09:08 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Uso De Enter Para Moverse Entre Campos De Un Formulario
He hecho un pequeño ejemplo, aunque solo tiene una pestaña para trabajar.
Lo que veo que es importante es tener en cuenta la jerarquía o el orden que tiene los componentes dentro de su contenedor para
asegurarnos que el siguiente componente que va a saltar o moverse sea de la misma clase. Por ejemplo, TextBoxes.
El código del ejemplo es este: ( Ya está modificado)
Lo que hice fue darle un nombre a la primera caja de texto y a la ultima.
Cuando llega a la que tiene como nombre "TextBoxUltimo" salta a la que tiene
como nombre TextBoxPrimero. Todas las cajas de textos pertenecen al mismo grupo. TextBoxesPest1.
En este caso solo se trata de una pestaña. Habría que hacer algo similar o común a todas las pestañas.
Saludos
Descripción: |
|
Descargar |
Nombre del archivo: |
MoverseCamposConEnter.tar.gz |
Tamaño: |
5.46 KB |
Descargado: |
29 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
MoverseCamposConEnter.tar.gz |
Tamaño: |
5.46 KB |
Descargado: |
29 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
MoverseCamposConEnter.tar.gz |
Tamaño: |
5.46 KB |
Descargado: |
29 veces |
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Domingo, 18 Enero 2015, 11:55; editado 2 veces
|
#13 Domingo, 18 Enero 2015, 10:24 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Uso De Enter Para Moverse Entre Campos De Un Formulario
Lo que veo que falta en el código es el manejo de la tecla enter, porque así como está el código, cualquier tecla haría saltar el foco al siguiente control.
De todas formas, aunque está bien como ejercicio, el principal inconveniente es la usabilidad. Cualquier usuario típico espera cambiar el foco de los controles usando la tecla tab, por lo tanto cualquier otro comportamiento puede llegar a ser confuso.
No lo olvidemos, porque en general, ya he visto que los programadores intentan cambiar muchas veces el comportamiento "natural" establecido por el SO por otros que no son los habituales, con el resultado de que algunos usuarios no lo saben manejar a priori por no cumplir con lo establecido. Puede llegar a ser frustrante...
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#14 Domingo, 18 Enero 2015, 10:49 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Uso De Enter Para Moverse Entre Campos De Un Formulario
Jesús:
Si, es verdad, se me olvidó lo de la tecla Enter. Como estaba mas fijándome en el cambio de una caja de texto a al otra.
Lo cambio.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#15 Domingo, 18 Enero 2015, 11:52 |
|
|
viejito
Usuario
Registrado: Diciembre 2014
Mensajes: 44
Edad: 62 Ubicación:
|
Re: Uso De Enter Para Moverse Entre Campos De Un Formulario
Ok, como decimos en Venezuela ... "Pongamos orden en la pea, jajaja"
Creo que individualmente las respuestas serán mas claras.
La primera respuesta de Shell es muy laboriosa, voy a tener entre 300 y 350 controles TextBox, repartidos en 9 pestañas del TabStrip. Pero está bien es la respuesta estándar.
Su 2da propuesta es buena, algo rudimentaria, pero me gustó.
La respuesta de shordi, es algo como lo que busco pero al igual que a Shell en el KeyPress o Key Release de la Forma no cambia de Control. Lo cual no entiendo, ya que lo lógico es que por aquello de la propagación debería funcionar.
De ahí mi respuesta de que no cambiaba de control.
La propuesta de vuott suena interesante, y me responden entre todos algo que no había preguntado, pero intuía, ¿ los controles en una forma son enumerables de alguna forma?. Ya veo que sí, incluso de mas de una.
No he podido probar cada solución aún, son tantas las cosas que aprender o recordar, que la dispersión está a millón.
Pero hoy me dedico a probarlo en una forma que cree para eso y otra cosa mas.
Al probar seriamente cada una informo que pasó.
|
#16 Domingo, 18 Enero 2015, 13:18 |
|
|
viejito
Usuario
Registrado: Diciembre 2014
Mensajes: 44
Edad: 62 Ubicación:
|
Re: Uso De Enter Para Moverse Entre Campos De Un Formulario
jguardon, tienes toda la razón.
Pero en este caso preciso, el usuario espera que cambie de control con Enter, salir con Escape e incluso que Enter accione los botones.
Peor aún el uso del ratón al final será limitado al SO y alguna que otra cosa que no pueda hacer con el teclado.
Para dar algo de luz al respecto, imagina que se trata de un grupo de tiendas que vendan cosas al menudeo, digamos clavos, arandelas, tuercas, tornillos, etc., ahora bien, los clientes simultáneos son un promedio similar al de un supermercado, con una facturación diaria superior a las 500 facturas, tratar de manejar una aplicación con ratón es difícil por decir lo menos.
Incluso y lamentablemente el trabajo que estoy haciendo es para substituir una aplicación de inventario, no por falta de ellas en el mercado, sino por requerimientos de la empresa en cuestión.
Es decir estoy atado de manos. No obstante, estoy de acuerdo contigo en que esos cambios en general no son productivos, además de frustrantes para el usuario común y corriente.
|
#17 Domingo, 18 Enero 2015, 15:48 |
|
|
viejito
Usuario
Registrado: Diciembre 2014
Mensajes: 44
Edad: 62 Ubicación:
|
Re: Uso De Enter Para Moverse Entre Campos De Un Formulario
Aquí el código de lo que hice, ya que me dedique seriamente a esto del uso del enter para cambiar que sea bien.
Pondré un ejemplo de lo que hice y sirve para probar el funcionamiento. Inicialmente funciona bien, pero debo decir que el comportamiento del enter resultará diferente según el control. Esto es porque la aplicación a substituir fué hecha para MS-DOS en win 3.11 ( si, señores ... eso existió alguna vez, jajaja ).
Ok, explico lo que hay ... un total de 21 controles, que incluyen divisores, etiquetas, botones, cajas de texto etc.
Todo aparenta ir bien hasta el 19, ahí se detiene y no avanza mas, ya revisé con el debuger y se salta todas las consideraciones que hice, sé que no avanza mas allá del combobox, imagino que eso no es, porque hasta el 19 iba sumando controles.
Algo no estoy viendo, pero ni modo ...
|
#18 Domingo, 18 Enero 2015, 16:18 |
|
|
viejito
Usuario
Registrado: Diciembre 2014
Mensajes: 44
Edad: 62 Ubicación:
|
Re: Uso De Enter Para Moverse Entre Campos De Un Formulario
Esta era la captura de pantalla que faltó.
Ya me emboté, tengo con esto desde las 2:30 am.
A ver que pueden ver uds., que yo no veo ahora.
|
#19 Domingo, 18 Enero 2015, 16:24 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Uso De Enter Para Moverse Entre Campos De Un Formulario
Es posible que el combobox no reciba el foco y ya no haya más textboxes. No entiendo bien la lógica de tu código, pero me parece que en el primer condicional estás excluyendo los botones, combobox y radiobutton. Sólo asignas el foco a los textbox (o a los controles que tienen el tag="textbox").
Revisa ese dato...
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#20 Domingo, 18 Enero 2015, 16:32 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 2 de 3
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|