从父窗体 MenuStrip 中删除 ToolStripMenuItem
remove ToolStripMenuItem from parent forms MenuStrip
我一直在做一个小项目,基本上它是一个父窗体,里面有一个带有选项卡控件的子窗体。当我更改选项卡时,它会将该选项卡的相关选项添加到父菜单条中。
我想做的是,而不是每次我更改选项卡时,菜单条上都会出现一个新的 'Options',因此在更改几个选项卡后,它具有 'Options' 'Options' 'Options' 'Options' 在菜单条上,但我宁愿从上一个选项卡中删除选项,只显示 1 个选项。
到目前为止,我在添加新选项之前删除选项的代码如下:
Dim ParentForm As frmNavigation = frmNavigation
Dim OptionsMenuStrip As MenuStrip = ParentForm.Controls("MenuStrip1")
Dim Items As ToolStripItemCollection = OptionsMenuStrip.Items
For Each Item As ToolStripMenuItem In Items
If Item.Name = "OptionsMenu" Then
Item.Dispose()
End If
Next
但我收到错误
'Collection was modified; enumeration operation may not execute.'
我的理解基本上是说集合在阅读时改变它,我想?
我只是不知道如何解决它
如果能帮助我实现我的愿望,我将不胜感激。
我什至可能完全走错了路,但我感觉很接近!
谢谢你:)
您对此错误的解释是正确的。您可以将 "to be removed" 项目放在单独的列表中,然后 Remove
它们:
Dim ParentForm As frmNavigation = frmNavigation
Dim OptionsMenuStrip As MenuStrip = ParentForm.Controls("MenuStrip1")
Dim Items As ToolStripItemCollection = OptionsMenuStrip.Items
Dim removeThese As New List(Of ToolStripMenuItem)
For Each Item As ToolStripMenuItem In Items
If Item.Name = "OptionsMenu" Then
removeThese.Add(Item)
End If
Next
For Each item In removeThese
Items.Remove(item)
item.Dispose()
Next
请注意,ToolStripMenuItem
已从 ToolStripItemCollection 中删除,然后 已处理。
我一直在做一个小项目,基本上它是一个父窗体,里面有一个带有选项卡控件的子窗体。当我更改选项卡时,它会将该选项卡的相关选项添加到父菜单条中。
我想做的是,而不是每次我更改选项卡时,菜单条上都会出现一个新的 'Options',因此在更改几个选项卡后,它具有 'Options' 'Options' 'Options' 'Options' 在菜单条上,但我宁愿从上一个选项卡中删除选项,只显示 1 个选项。
到目前为止,我在添加新选项之前删除选项的代码如下:
Dim ParentForm As frmNavigation = frmNavigation
Dim OptionsMenuStrip As MenuStrip = ParentForm.Controls("MenuStrip1")
Dim Items As ToolStripItemCollection = OptionsMenuStrip.Items
For Each Item As ToolStripMenuItem In Items
If Item.Name = "OptionsMenu" Then
Item.Dispose()
End If
Next
但我收到错误
'Collection was modified; enumeration operation may not execute.'
我的理解基本上是说集合在阅读时改变它,我想?
我只是不知道如何解决它
如果能帮助我实现我的愿望,我将不胜感激。
我什至可能完全走错了路,但我感觉很接近!
谢谢你:)
您对此错误的解释是正确的。您可以将 "to be removed" 项目放在单独的列表中,然后 Remove
它们:
Dim ParentForm As frmNavigation = frmNavigation
Dim OptionsMenuStrip As MenuStrip = ParentForm.Controls("MenuStrip1")
Dim Items As ToolStripItemCollection = OptionsMenuStrip.Items
Dim removeThese As New List(Of ToolStripMenuItem)
For Each Item As ToolStripMenuItem In Items
If Item.Name = "OptionsMenu" Then
removeThese.Add(Item)
End If
Next
For Each item In removeThese
Items.Remove(item)
item.Dispose()
Next
请注意,ToolStripMenuItem
已从 ToolStripItemCollection 中删除,然后 已处理。