Recorrer la coleccion de items de un MenuStrip

03/05/2006 - 18:47 por Lorena | Informe spam
Hola.

El menu de mi aplicación es un control MenuStrip. Pretendo deshabilitar
determinados SubMenus de cada uno de los items del MenuStrip. Consiguo
recorrer cada uno de los menus del MenuStrip, pero no consigo obtener la
coleccion de SubMenus (DropDownItems).

Este es el código que utilizo para recorrer la collecion de items del menu:

For Each mnuItem As ToolStripItem In MenuStrip1.Items
/*Aqui deberia obtener la collecion del mnuItem
For Each mnuSubItem As ToolStripDropDownItem In mnuItem.*
If mnuSubItem.Name = strNomMenu Then
mnuSubItem.Enabled = False
End If
Next
Next

¿Alguien sabe como podría recorrer los submenus?

Gracias. Saludos
 

Leer las respuestas

#1 Jorge Serrano [MVP VB]
03/05/2006 - 21:12 | Informe spam
Hola,

reutilizando un código reciente del foro, te indico;

Creamos una declaración:
Private strNomMenu As String = "lalala"

Y llamamos a una rutina que se encargará de llamar a los métodos que
recorrerán el control Menu.
Me.RecorrerEstructuraMenu(Me.MenuStrip1)

Los métodos que utilizamos son los siguientes:

Private Sub RecorrerEstructuraMenu(ByVal oMenu As MenuStrip)
For Each oOpcionMenu As ToolStripMenuItem In oMenu.Items
oOpcionMenu.Text = strNomMenu
If oOpcionMenu.DropDownItems.Count > 0 Then
Me.RecorrerSubmenu(oOpcionMenu.DropDownItems, "-")
End If
Next
End Sub

Private Sub RecorrerSubmenu(ByVal oSubmenuItems As
ToolStripItemCollection, ByVal sGuiones As String)
For Each oSubitem As ToolStripItem In oSubmenuItems
If oSubitem.GetType Is GetType(ToolStripMenuItem) Then
oSubitem.Text = strNomMenu
If CType(oSubitem, ToolStripMenuItem).DropDownItems.Count >
0 Then
Me.RecorrerSubmenu(CType(oSubitem,
ToolStripMenuItem).DropDownItems, sGuiones & "-")
End If
End If
Next
End Sub


Por otro lado, respecto a tu código, comentarte que hay un error en el uso
de mnuItem, ya que cuando vas a recorrerlo, no es una colección.

Un saludo.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Lorena" wrote:

Hola.

El menu de mi aplicación es un control MenuStrip. Pretendo deshabilitar
determinados SubMenus de cada uno de los items del MenuStrip. Consiguo
recorrer cada uno de los menus del MenuStrip, pero no consigo obtener la
coleccion de SubMenus (DropDownItems).

Este es el código que utilizo para recorrer la collecion de items del menu:

For Each mnuItem As ToolStripItem In MenuStrip1.Items
/*Aqui deberia obtener la collecion del mnuItem
For Each mnuSubItem As ToolStripDropDownItem In mnuItem.*
If mnuSubItem.Name = strNomMenu Then
mnuSubItem.Enabled = False
End If
Next
Next

¿Alguien sabe como podría recorrer los submenus?

Gracias. Saludos



Preguntas similares