static public void RecargaOpcionesMenu(MenuStrip menu)
{
foreach (ToolStripItem tsi in menu.Items)
{
if (GuardaOpcion(tsi.Text,"",tsi.Visible, true))
{
if (tsi.GetType().Name == "ToolStripMenuItem")
{
ToolStripMenuItem t = (ToolStripMenuItem)tsi;
RecargaOpcionesMenu(t.DropDownItems,tsi.Text);
}
}
else
{
return;
}
}
}
static public void RecargaOpcionesMenu(ToolStripItemCollection
subMenu,string padre)
{
foreach (ToolStripItem tsi in subMenu)
{
if (GuardaOpcion(tsi.Text , padre ,tsi.Visible , true ))
{
if (tsi.GetType().Name == "ToolStripMenuItem")
{
ToolStripMenuItem t = (ToolStripMenuItem)tsi;
RecargaOpcionesMenu(t.DropDownItems,tsi.Text );
}
}
else
{
return;
}
}
}
Si observáis llamo al método GuardaOpcion con 4 parámetros. El tercero
corresponde a la propiedad visible del elemento ToolStripItem que estoy
guardando.
Evidentemente en el menú que envío para iniciar la carga tengo opciones
principales, las que saldrán en la barra de menús inicialmente y cada una de
las opciones su opciones a la vez, en fín lo normal. En diseño a las opciones
y/o subopciones les pongo a algunas la propiedad visible a false. Si
observáis el código, gracias a la recursiva recorremos todos los elementos de
menú. Pués bien la propiedad visible únicamente la toma cuando la opción es
del nivel uno, por decirlo de alguna forma.
O sea, en las opciones : &Archivo->&Nuevo
->&Buscar
->---
->&Salir
Por ejemplo, únicamente leerá correctamente la propiedad visible en la
opción &Archivo, en las otras opciones siempre a false.
¿Alguien sabe que está ocurriendo?
Muchas gracias como siempre por vuestra ayuda.
saludos.
rafael villaran