tincho 21-05-2021, 10:49
Hola amigos.
En otro mensaje preguntaban como obtener las "Labels" del formulario y me pareció oportuno crear un post mas amplio que englobe unas cuantas mas posibilidades similares.
Hace tiempo el compañero Shordi me enseño a crear controles por código para editar datos de una base de datos, y desde entonces he ido usando este método en diferentes variantes. La mas elegante, creo, es la de crear un panel y dentro de este poner un "Label" y un "TextBox" o un "ValueBox" o lo que sea que requiera el dato en cuestión. Pero sucede que luego el código que gestione los eventos de cada uno de esos controles debe valer para todos ellos y es cuando se trabaja con LAST, PARENT, TAG etc. que son diferentes opciones para restringir el conjunto sobre el que se actuara.
[Imagen: XObMw2o.png]
Si por ejemplo tenemos un panel con dos controles dentro para cada campo y queremos que al cambiar el valor de texto del TextBox se ponga en rojo la TextLabel que se encuentra en el mismo panel, no es necesario recorrero todos los controles del formulario sino que solo los del panel "Parent".
Código:
Public Sub elGrupo_Change()

  Dim ob As Object
 
  For Each ob In Last.Parent.Children
    If Object.Type(ob) = "Label" Then
      ob.Foreground = Color.Red
    Endif
  Next

End
Se puede "jugar" con diferentes niveles de anidamiento, propiedades como si es visible o no, y también se pueden borrar los controles que ya no son necesarios con algo como
[code]
Lo cual eliminaría el mismo control que origino el evento, no lo probé pero tal vez funcione.
Saludos.
gambafeliz 19-05-2021, 22:02
Hola

Tengo un panel padre y este actúa como contenedor de muchos paneles donde estos paneles contienen dos elementos un picture y un label para cada panel. En resumen, existe algún camino fácil para obtener los label estén donde estén en este Panel padre o por contra tengo que recorrer cada uno de los paneles que existan en el panel principal.

Gracias.

Ejemplo: (Siento no escalonarlo pero no se como)

Panel padre
Panel a1
Picture b1
Panel b1
label c1 <---
Panel a2
Picture b2
Panel b2
label c2 <---
Panel a3
Picture b3
Panel b3
label c3 <---
....
tincho 19-05-2021, 11:01
Hola Jesus,
Estaba pensando que tal vez seria bueno que hubiéramos un apartado de preguntas frecuentes ¿Que opinas?
Saludos.
Páginas (564):    1 439 440 441 442 443 564   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 293
Último miembro: DarkWolf
Temas del foro: 1,742
Mensajes del foro: 9,029
Últimos temas
Ordenar en un TableView
Foro: General
Último mensaje por: Shordi, Ayer, 18:41
Respuestas: 3 - Vistas: 75
Odio a gb.Report
Foro: General
Último mensaje por: guizans, 02-11-2025, 13:36
Respuestas: 9 - Vistas: 1,529
Reportes de Gambas
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Alberto59, 27-10-2025, 16:34
Respuestas: 2 - Vistas: 1,323
Ordenando las carpetas
Foro: Programación en otros lenguajes
Último mensaje por: tercoide, 22-10-2025, 15:57
Respuestas: 0 - Vistas: 102
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.