Shell 01-09-2022, 13:12
Buenas!.

Después de dar muchas vueltas e intentando crear un código que lo hiciera, resulta que Gambas tiene el componente gb.data
que incluye la clase List que es una lista circular doblemente enlazada.

La idea del ejemplo es que tengo tres cajas de texto y al pulsar la tecla Enter o la Intro, el foco pasa de la primera a la segunda,
de la segunda a la tercera y cuando llega a la última y volvemos a pulsar Enter, vuelve a comenzar por la primera.

En este caso necesita que se pulse Enter. No me vale la tecla de tabulación.

[Imagen: ZAiisAz.png]

Código:
Private lista As List

Public Sub Form_Open()
 
  Me.Title = "Enfoque Circular"
  lista = New List
 
  'El primer elemento de la lista es el último insertado (la cabeza)
  'Una pila de TextBoxes en este caso. El tipo de dato que admite es Variant
 
  lista.Append(TextBox1)
  lista.Append(TextBox2)
  lista.Append(TextBox3)
 
End

Public Sub CajasDeTexto_KeyPress()
 
  If Key.code = Key.Return Or Key.code = Key.Enter Then     
    'Probar a cambiar del método MovePrev a MoveNext y ver el efecto
    
    'Se mueve al valor anterior. Si el actual era el primer valor, se convertirá en el último.
    
    lista.MovePrev
    
    'Se mueve del actual elemento al siguiente y si el actual es el último, se convertirá en el primero (es ciclico)
    'lista.MoveNext
    
    'Value es la caja de texto en si
    lista.Current.Value.SetFocus  
  Endif  
 
End

Saludos
Archivos adjuntos
.gz
CajasDeTextoFocoCircular-0.0.1.tar.gz (Tamaño: 12.5 KB Descargas: 3)
Shell 31-08-2022, 12:36
Buenas!.

En este caso existe un evento que cumple una tarea y se llama al evento KeyPress del formulario.
Normalmente usamos sentencias de comparación o varias para saber si se ha pulsado una tecla.
A ver que os parece la forma de evitarla.

Código:
Public Sub Form_KeyPress()
 
  Dim teclas As Integer[] = [Key.Enter, Key.Return]

  'If Key.Code = Key.Enter Or Key.Code = Key.Return Then Button1_Click
 
  If teclas.Exist(Key.Code) Then Button1_Click

End

Como son constantes no puedo usa sus valores al comienzo del código y declarar teclas como pública.

Saludos
FranChesstein 31-08-2022, 09:45
Buenas un saludo a la comunidad gambas

Este es mi primer post en este foro, así que me voy a presentar brevemente, soy aficionado a la programación en general, y al basic en particular Big Grin.

No habia programado nunca en gambas, tampoco en Visual Basic, soy de la vieja escuela del C, y estoy haciendo un pequeño programa (y primero) en gambas3, basicamente para aprender a conocer este lenguaje, y estoy teniendo dificultades en gestionar el control "tapstrip", concretamente me he quedado atascado (no encuentro información en internet) en pasar de una pestaña a otra desde código sin intervención del usuario. Me explico, en una pestaña, por ejemplo, realizo una serie de operaciones, y que una vez terminadas le doy a un control tipo "button" para me salte a otro control tipo "textarea" donde mostrar información y que está en otra pestaña, sin que el usuario tenga que picar manualmente en las pestañas del control.

he probado con textarea.show(), textarea.setfocus(), etc, tambien he intentado ver si el control  tabstrit tiene algún tipo de indice que te pueda redirigir a otras pestañas, pero nada de nada. Solo veo que existe la propiedad "current", y otra para fijar el número de pestañas, pero no existe ningún método que te permita redirigirte a otra pestaña.

Espero haberme explicado, y gracias de antemano
Páginas (570):    1 282 283 284 285 286 570   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 304
Último miembro: leonmv
Temas del foro: 1,760
Mensajes del foro: 9,148
Últimos temas
Visual Studio Code con Ga...
Foro: General
Último mensaje por: guizans, 07-03-2026, 14:24
Respuestas: 2 - Vistas: 255
WebForm con mysql gridvie...
Foro: WebApp/WebForms
Último mensaje por: vjarvelo, 03-03-2026, 16:32
Respuestas: 2 - Vistas: 2,962
Sobre la proteccion del c...
Foro: General
Último mensaje por: Shordi, 19-02-2026, 11:07
Respuestas: 7 - Vistas: 702
Sobre LinuxMint
Foro: Mundo Linux
Último mensaje por: guizans, 17-02-2026, 21:46
Respuestas: 2 - Vistas: 386
Problema con creación de ...
Foro: Bases de Datos
Último mensaje por: guizans, 17-02-2026, 21:42
Respuestas: 4 - Vistas: 546
Powered By MyBB, © 2002-2026 MyBB Group.
Made with by Curves UI.