Saltar al contenido

¿Se puede seleccionar un grupo de controles (agrupados) en tiempo de ejecución?


Haplox

Recommended Posts

Qué tal,

Os preguntaréis qué hace este preguntado algo así... pues es que me ha surgido una duda la diseñar un formulario. Tengo varios controles agrupados (listbox, textbox y commandbutton). Veo que en propiedades, si selecciono el grupo, puede activarlo/desactivarlo, pero... No hay nombre de grupo para seleccionarlo en tiempo de ejecución.

Si lo desactivo en propiedades, al lanzar el formulario aparecen todos los controles incluidos desactivado (normal, lo he hecho en propiedades ;)), pero no encuentro manera de hacerlo en tiempo de ejecución, porque no tiene nombre asignado.

Ya sé que con un marco lo puedo hacer, pero me ha surgido esta curiosidad. ¿Alguna idea o respuesta directa, del tipo "No se puede"? :rolleyes:

Enlace a comentario
Compartir con otras webs

Hasta donde yo se, no se puede dar un nombre de grupo a los controles de un formulario, exceptuando a los controles CheckBox y OptionButton.

Yo utilizo la propiedad Tag para ello. :rolleyes:, en cualquier caso, es necesario ir control a control.

También puedes jugar con el nombre de los controles, pero me imagino que ya habrás llegado a esa conclusión.

Enlace a comentario
Compartir con otras webs

Hace 2 minutos , Antoni dijo:

También puedes jugar con el nombre de los controles, pero me imagino que ya habrás llegado a esa conclusión.

Efectivamente, pero como son unos cuantos y he visto que el grupo lo puedo desactivar en tiempo de diseño, pues eso ;). Si ya es por aprender (si hay algo que aprender, que parece que sí). Siempre puedo utilizar un marco

Hace 3 minutos , Antoni dijo:

Yo utilizo la propiedad Tag para ello. :rolleyes:, en cualquier caso, es necesario ir control a control.

En esto había pensado, pero no veo cómo ¿Me iluminas? :rolleyes:

Enlace a comentario
Compartir con otras webs

Pues coloca el nombre del grupo en la propiedad Tag en tiempo de diseño/ejecución y luego recorres la colección Controls preguntando por Tag:

For Eah Control In Controls

If Control.Tag = "Nombre grupo" Then
   ...
   ...
End If

Next

A veces, utilizo esta propiedad para poner las columnas de las celdas que quiero actualizar.

Enlace a comentario
Compartir con otras webs

Hace 23 horas, Antoni dijo:

Pero vamos, si al grupo de controles les asignas un nombre tal que G1xx

Ese es el problema por el que abrí el post, no hay forma de asignarle nombre. Con el Tag funciona perfecto, es más, cuando agrupas y pones tag al grupo, TODOS los controles del  mismo cogen el mismo tag.

Cuando recorres los controles comparando el tag, solo con comparar el del grupo ya lo activa ;), no hace falta recorrer control por control.

Desactivo en tiempo de diseño, y activo con el tag del grupo en tiempo de de ejecución :lol:.

Gracias por la idea

Enlace a comentario
Compartir con otras webs

Hace 2 horas, Haplox dijo:

Ese es el problema por el que abrí el post, no hay forma de asignarle nombre. Con el Tag funciona perfecto, es más, cuando agrupas y pones tag al grupo, TODOS los controles del  mismo cogen el mismo tag.

Cuando recorres los controles comparando el tag, solo con comparar el del grupo ya lo activa ;), no hace falta recorrer control por control.

Desactivo en tiempo de diseño, y activo con el tag del grupo en tiempo de de ejecución :lol:.

Gracias por la idea

¿Ehhhhhhhhhhh? Sube el archivo que yo esto no lo sabía.

Enlace a comentario
Compartir con otras webs

Hace 2 horas, Haplox dijo:

Ese es el problema por el que abrí el post, no hay forma de asignarle nombre. Con el Tag funciona perfecto, es más, cuando agrupas y pones tag al grupo, TODOS los controles del  mismo cogen el mismo tag.

Cuando recorres los controles comparando el tag, solo con comparar el del grupo ya lo activa ;), no hace falta recorrer control por control.

Desactivo en tiempo de diseño, y activo con el tag del grupo en tiempo de de ejecución :lol:.

Gracias por la idea

Parte lo se.. pero parte no entiendo bien lo que haces... sube tu archivo...

Gracias.

Enlace a comentario
Compartir con otras webs

Hola @Haplox, en esos casos yo utilizo el control Frame para crear grupos de controles y despues recorrer los mismos mas facilmente.

Por ejemplo a la hora de crear un control lo coloco dentro de un frame 

Me.Frame1.Controls.Add("Forms.TextBox.1", "txtEjemplo")

Y para recorrer los controles dentro de Frame algo así:

For Eah Ctrl In Me.Frame1.Controls

   

Next

Saludos a todos.

Enlace a comentario
Compartir con otras webs

Hace 9 horas, AlexanderS dijo:

Hola @Haplox, en esos casos yo utilizo el control Frame para crear grupos de controles y despues recorrer los mismos mas facilmente.

Por ejemplo a la hora de crear un control lo coloco dentro de un frame 


Me.Frame1.Controls.Add("Forms.TextBox.1", "txtEjemplo")

Y para recorrer los controles dentro de Frame algo así:


For Eah Ctrl In Me.Frame1.Controls

   

Next

Saludos a todos.

Graciad alexander, si te fijas al principio, ya comente lo del frame, el tema era la duda sobre los grupos. 

@Antoni

puedes comprobarlo tu mismo. Crra unos cuantos controles, tal cual agrupalos y pon tag al grupo, ahora selecciona cualquier control dentro del grupo (sin desagrupar) y comprueba su tag:)

Enlace a comentario
Compartir con otras webs

Hace 3 horas, Haplox dijo:

Graciad alexander, si te fijas al principio, ya comente lo del frame, el tema era la duda sobre los grupos. 

@Antoni

puedes comprobarlo tu mismo. Crra unos cuantos controles, tal cual agrupalos y pon tag al grupo, ahora selecciona cualquier control dentro del grupo (sin desagrupar) y comprueba su tag:)

¡Ah! Pensaba que podías actuar sobre todos los controles con un mismo Tag a la vez en tiempo de ejecución.

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.