Agregar controles de usuario dinámicamente

01/04/2004 - 17:36 por Juan | Informe spam
Hola a todos,

la idea que tengo es la de generar unos menús dinámicamente. Para ello, me
he creado:

- un control de usuario, que no es más que una imagen y un label.
- una clase, que tiene como parámetros la ruta de la imagen, el texto de la
label, el nombre que quiero asignar al control y, lo que me está dando
problemas, el nombre de un panel que quiero mostrar cuando se haga click en
el control que acabo de pinchar (que será realemtne la label del control lo
que pinche).
- un archivo XML que contiene los valores a partir de los cuales creo, por
cada elemento, una instancia de mi clase.
- Un formulario con dos paneles, uno a la izda., donde irá el menu, y otro a
la dcha., donde se mostrarán diferentes paneles en función del botón que
es´te pinchando.

El problema es que aunque disparo correctamente el evento click del botón,
no soy capaz de decirle que muestre el panel que quiero, porque no se cómo
acceder a los controles del formulario.

No se si me explicado lo suficientemente claro espero que si.

¿Alguna sugerencia?

Gracias y un saludo

Preguntas similare

Leer las respuestas

#1 Rodrigo Meneses
01/04/2004 - 21:35 | Informe spam
Me parece que tienes una propiedad llamda Controls.
Verifica si por ahi puedes acceder a los controles del formulario
Saludos,
-Rodrigo
s
"Juan" wrote in message
news:%233zNO8$
Hola a todos,

la idea que tengo es la de generar unos menús dinámicamente. Para ello, me
he creado:

- un control de usuario, que no es más que una imagen y un label.
- una clase, que tiene como parámetros la ruta de la imagen, el texto de


la
label, el nombre que quiero asignar al control y, lo que me está dando
problemas, el nombre de un panel que quiero mostrar cuando se haga click


en
el control que acabo de pinchar (que será realemtne la label del control


lo
que pinche).
- un archivo XML que contiene los valores a partir de los cuales creo, por
cada elemento, una instancia de mi clase.
- Un formulario con dos paneles, uno a la izda., donde irá el menu, y otro


a
la dcha., donde se mostrarán diferentes paneles en función del botón que
es´te pinchando.

El problema es que aunque disparo correctamente el evento click del botón,
no soy capaz de decirle que muestre el panel que quiero, porque no se cómo
acceder a los controles del formulario.

No se si me explicado lo suficientemente claro espero que si.

¿Alguna sugerencia?

Gracias y un saludo



Respuesta Responder a este mensaje
#2 Tristan
01/04/2004 - 23:12 | Informe spam
¿Necesitas acceder a los controles por su nombre, es eso?. Si es así,
puedes:

Recorrer la colección controls.

Ayudarte de un diccionario, por ejemplo un hashtable, en que incluyas el par
Nombre-Control.

Utilizar reflection:

private Control ControlByName(string name)
{
FieldInfo campo = this.GetType().GetField(name,
BindingFlags.NonPublic | BindingFlags.Instance);
return (Control) campo.GetValue(this);
}

ControlByName("button1").Text = "Modificado";


Juan Carlos Badiola
MVP - C#
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida