Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] ¿Cómo mostrar formularios de forma dinámica?

Estas en el tema de ¿Cómo mostrar formularios de forma dinámica? en el foro de .NET en Foros del Web. Buenas tardes. Estoy desarrollando una aplicación para Windows, la cual carga un ToolStripMenu, de forma dinámica, por cada rol asignado al usuario. Los items de ...
  #1 (permalink)  
Antiguo 22/02/2013, 17:04
Avatar de jlbautista  
Fecha de Ingreso: enero-2007
Ubicación: Durango, Méx.
Mensajes: 175
Antigüedad: 17 años, 3 meses
Puntos: 1
Información ¿Cómo mostrar formularios de forma dinámica?

Buenas tardes.

Estoy desarrollando una aplicación para Windows, la cual carga un ToolStripMenu, de forma dinámica, por cada rol asignado al usuario. Los items de este menú se crean de acuerdo a información que obtengo desde la Base de Datos.

Ahora, lo interesante es conocer como puedo asignarle a cada ToolStripMenuItem que en su click mande mostrar el formulario correspondiente.

Desde la Base de Datos obtengo el nombre del form que se debe abrir para cada artículo del menú y lo almaceno en un objeto String.

¿Cómo puedo crear la instancia de mi form y mostrarlo en pantalla?

Este es mi método para crear el menú:
Código:
        private void CreaMenu()
        {
            DataTable dtDatosMenu = rnPrincipal.ObtenMenu(cveUsuario);
            if (dtDatosMenu.Rows.Count == 0)
            {
                MessageBox.Show("No se encontraron datos acerca de los permisos para el usuario.", "Error del Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            ToolStripMenuItem tsmFuncion;
            ResourceManager rm = Properties.Resources.ResourceManager;

            foreach (DataRow drMenu in dtDatosMenu.Rows)
            {
                tsmFuncion = new ToolStripMenuItem();

                Image objImagen = rm.GetObject(drMenu["imagen"].ToString()) as Image;
                tsmFuncion.Image = objImagen;
                tsmFuncion.ImageScaling = ToolStripItemImageScaling.None;
                tsmFuncion.ImageAlign = ContentAlignment.MiddleLeft;
                tsmFuncion.Alignment = ToolStripItemAlignment.Left;
                tsmFuncion.Text = drMenu["descFuncion"].ToString();
                tsmFuncion.Name = drMenu["modulo"].ToString();
                tsmFuncion.Click += tsmFuncion_Click;

                menuPrincipal.Items.Add(tsmFuncion);
            }
        }
Y este es el manejador del Evento Click de los ToolStripMenu:
Código:
        private void tsmFuncion_Click(object sender, EventArgs e)
        {
            ToolStripItem tsmItem = sender as ToolStripItem;
            string form = tsmItem.Name;
            //De aquí ya no se como crear la instancia de cada Form que deseo mostrar
        }
Les agradezco de antemano, cualquier ayuda es buena :)

Saludos.
__________________
Saludos desde Durango, MX
JL :)
  #2 (permalink)  
Antiguo 25/02/2013, 11:53
Avatar de jlbautista  
Fecha de Ingreso: enero-2007
Ubicación: Durango, Méx.
Mensajes: 175
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: ¿Cómo mostrar formularios de forma dinámica?

La respuesta la pude encontrar en el siguiente enlace:
Instanciar Formulario a partir de un String

Gracias a todos :)
__________________
Saludos desde Durango, MX
JL :)

Etiquetas: c#, dinamicos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:12.