Vb.net winforms菜单作为数组
我知道最有可能像数组一样访问winforms菜单,但我在VS2008的菜单设计器中没有看到它?我的意思是,我的应用程序顶部有一个典型的菜单栏,每个下拉菜单上有多个项目。正如所写的(我继承了这段代码),每个菜单项都是一个单独的名称,即Vb.net winforms菜单作为数组,vb.net,winforms,Vb.net,Winforms,我知道最有可能像数组一样访问winforms菜单,但我在VS2008的菜单设计器中没有看到它?我的意思是,我的应用程序顶部有一个典型的菜单栏,每个下拉菜单上有多个项目。正如所写的(我继承了这段代码),每个菜单项都是一个单独的名称,即 myMenuOption1MenuItem myMenuOption2MenuItem myMenuOption3MenuItem myMenuOption4MenuItem 等等 我需要能够根据用户权限启用或禁用(甚至隐藏/取消隐藏)菜单选项,例如: For I
myMenuOption1MenuItem
myMenuOption2MenuItem
myMenuOption3MenuItem
myMenuOption4MenuItem
等等
我需要能够根据用户权限启用或禁用(甚至隐藏/取消隐藏)菜单选项,例如:
For I = 0 to maxIndex
myMenuOption(I).Enabled = myUser.IsAdministrator
Next
显然,我可以按名称设置/取消设置每个菜单项,但出于许多原因,我更喜欢使用循环。每个子菜单项都在DropDownItems集合中,因此您可以循环使用它(如果您使用的是ToolStripMenuItems而不是旧样式的菜单)
For Each myItem As ToolStripMenuItem In myContextMenuStrip.Items
myItem.Enabled = myUser.IsAdministrator
Next
ToolStripMenuItem
s通过ContextMenuStrip.Items
For Each myItem As ToolStripMenuItem In myContextMenuStrip.Items
myItem.Enabled = myUser.IsAdministrator
Next
通过这种方式,您可以按如下方式访问每个事件:
Private Sub Menu_OnClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim Frm As Form = GetFormByName(sender.name)
If sender.Tag = "Modal" Then
Frm.ShowDialog(Me)
ElseIf sender.Tag = "Modeless" Then
Frm.Show(Me)
Else
OpenForm(Frm, True)
End If
End Sub
通过这种方式,您可以按如下方式访问每个事件:
Private Sub Menu_OnClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim Frm As Form = GetFormByName(sender.name)
If sender.Tag = "Modal" Then
Frm.ShowDialog(Me)
ElseIf sender.Tag = "Modeless" Then
Frm.Show(Me)
Else
OpenForm(Frm, True)
End If
End Sub