在 WinForms 中的 MenuStrip 和 DropDownItems 中添加和删除 ToolStripMenuItem
我有 MenuStrip
和一些静态项目。我正在以编程方式向此 MenuStrip
添加项目。其中一些项目具有子项目 (DropDownItems
)。
在某些时候,我想删除所有添加的项目以使用不同的项目重新创建菜单。怎样做才正确呢?
示例情况:
mainMenu
-staticItem1
-added1
-added1_sub1
-added1_sub2
-added2
-added2_sub1
我可以这样做:
added1.Dispose();
mainMenu.Items.Remove(added2);
这两种方法都有效,但我不确定它是否安全。也许我应该一一递归地删除和处理所有项目和子项目?
I have MenuStrip
with some static items. To this MenuStrip
I am adding items programmatically. Some of these items has child items (DropDownItems
).
At some point I would like to remove all added items to recreate menu with different items. How to do it right?
Example situation:
mainMenu
-staticItem1
-added1
-added1_sub1
-added1_sub2
-added2
-added2_sub1
I could do:
added1.Dispose();
mainMenu.Items.Remove(added2);
Both of this works, but I am not sure if it's safe. Maybe I should remove and dispose all items and subitems one by one recursively?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Remove
方法就足够了Items.Clear()
删除所有子级对于菜单和DropDownItems.Clear()
用于删除项目的所有子项。Remove
method only, it's enoughItems.Clear()
to remove all the children for the Menu andDropDownItems.Clear()
to remove all the children for an item.