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 (573):    1 285 286 287 288 289 573   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 314
Último miembro: LKTFermin2
Temas del foro: 1,770
Mensajes del foro: 9,188
Últimos temas
Programando con la IA
Foro: General
Último mensaje por: tincho, Ayer, 10:02
Respuestas: 16 - Vistas: 7,851
Extern: Uso de la libreri...
Foro: C/C++
Último mensaje por: tincho, 18-08-2026, 22:28
Respuestas: 0 - Vistas: 40
GauchoCAD vuelve a las pi...
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: tincho, 27-07-2026, 14:15
Respuestas: 15 - Vistas: 20,958
Powered By MyBB, © 2002-2026 MyBB Group.
Made with by Curves UI.