Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 3
Ir a la página Anterior  1, 2, 3  Siguiente
 
Uso De Enter Para Moverse Entre Campos De Un Formulario
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Uso De Enter Para Moverse Entre Campos De Un Formulario 
 
jguardon escribió: [Ver mensaje]
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"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.

 ejemplomoversecampos1

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.

 jerarquia

El código del ejemplo es este: ( Ya está modificado)  

Public Sub Form_Open()
  
  Dim a, x As Integer
  
  'Nombrar las pestañas
  
  For x = Asc("A") To Asc("C")
    TabStrip1[a].Text = Chr$(x)
    Inc a
  Next
  
End

Public Sub TextBoxesPest1_KeyRelease()
  
  Dim c As Control
  
  c = Last
  
  If Key.code = Key.Enter Or Key.code = Key.Return Then
    If c Is TextBox And Last.name <> "TextBoxUltimo" Then
      c.Next.SetFocus
    Else
      TextBoxPrimero.SetFocus
    Endif
  Endif
  
End
 


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

MoverseCamposConEnter.tar.gz
Descripción:  
Descargar
Nombre del archivo: MoverseCamposConEnter.tar.gz
Tamaño: 5.46 KB
Descargado: 29 veces
MoverseCamposConEnter.tar.gz
Descripción:  
Descargar
Nombre del archivo: MoverseCamposConEnter.tar.gz
Tamaño: 5.46 KB
Descargado: 29 veces
MoverseCamposConEnter.tar.gz
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 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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ó.
 



 
viejito - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
viejito - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 ).

Private b As Byte


Public Sub Form_KeyRelease()

  If (Key.code = Key.Return Or Key.code = Key.Enter) Then
  
    If Me.Children[b].Tag = "" Or Me.Children[b].Tag = "Button" Or Me.Children[b].Tag = "RadioButtom" Or Me.Children[b].Tag = "ComboBox" Then
       Inc b
    Endif
    
    If Me.Children[b].Tag = "TextBox" Then
       Inc b
       Me.Children[b].SetFocus
    End If

    If b > Me.Children.Count - 1 Then
      b = 0
    Endif

    Me.Label3.text = Str(b)
  
  Endif
End
 


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 ...
 



 
viejito - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Uso De Enter Para Moverse Entre Campos De Un Formulario 
 
screenshot_180115_10_29_35

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.
 



 
viejito - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Hago Para Validar Dos Campos En Una M... jousseph General 12 Martes, 06 Julio 2010, 19:24 Ver último mensaje
jguardon
No hay nuevos mensajes Problemas Para Detectar Tipo De Campos En ... jsbsan Bases de Datos 1 Miercoles, 30 Noviembre 2011, 20:58 Ver último mensaje
jguardon
No hay nuevos mensajes Como Hago Para Tener 2 Campos Primarios En... metalgearxd Bases de Datos 4 Martes, 05 Marzo 2013, 20:43 Ver último mensaje
shordi
No hay nuevos mensajes Mensajes Entre Modulo Y Formulario [Soluci... tincho General 6 Jueves, 02 Junio 2016, 10:47 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 2 de 3
Ir a la página Anterior  1, 2, 3  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron