InicioCiencia EducacionVB.Net ToolStripMenu Enabled/Disable Items/SubItems

VB.Net ToolStripMenu Enabled/Disable Items/SubItems

Ciencia Educacion12/21/2011
Sí tienen un menú en vb.net y quieren habilitar y deshabilitar menus y submenus es un poco gorrroso, cree esta rutina recursiva que creo que puede ser útil. Sí leen por ejemplo de una tabla los privilegios de usuario (donde tienen guardado el nombre de la opción de menú y un campo de habilita/deshabilita) pues sólo tienen que hacer la llamada a estas rutinas de la siguiente manera
call SetMenuItem(Me.MenuStrip, "mnu_usuario", True)


La función barre menús y submenus y actualiza el valor. Lo mejor es crear una clase para estas funciones, pasando de parametro el control menustrip.

Aquí van las functions:

Private Function prvSetMenuItem(ByRef pMenu As MenuStrip, ByVal pItemName As String, ByVal pEnabled As Boolean)
Dim lcToolStripMenuItem As ToolStripMenuItem
lcToolStripMenuItem = prvFindToolStripMenuItem(pMenu.Items, pItemName)
If lcToolStripMenuItem IsNot Nothing Then
lcToolStripMenuItem.Enabled = pEnabled
Return True
Else
Return False
End If
End Function

Private Function prvFindToolStripMenuItem(ByRef pMenu As ToolStripItemCollection, ByVal pItemName As String) As ToolStripMenuItem
Dim lbFound As Boolean = False
Dim lcToolStripItem As ToolStripMenuItem
Dim lcTmpToolStripMenuItem As ToolStripMenuItem

lcToolStripItem = pMenu(pItemName)
If lcToolStripItem Is Nothing Then
Dim i As Integer = 0
While Not lbFound And i < pMenu.Count
If pMenu(i).GetType Is GetType(ToolStripMenuItem) Then
lcTmpToolStripMenuItem = pMenu(i)
lcToolStripItem = prvFindToolStripMenuItem(lcTmpToolStripMenuItem.DropDownItems, pItemName)
lbFound = (lcToolStripItem IsNot Nothing)
End If
i += 1
End While
End If
Return lcToolStripItem
End Function
Datos archivados del Taringa! original
0puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

J
JoseLongoria🇦🇷
Usuario
Puntos0
Posts4
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.