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:
Y este es el manejador del Evento Click de los ToolStripMenu: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); } }
Código:
Les agradezco de antemano, cualquier ayuda es buena :)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 }
Saludos.