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.


