如何在将Item添加到ToolStripMenuItem.DropDownItems集合时收到通知

时间:2013-11-05 22:50:55

标签: c# winforms events toolstrip

我正在用c#开发一个MDI应用程序。组合两个MenuStrip时遇到问题:

我的父家长Form包含MenuStrip parentMenu和一些ToolStripMenuItem元素:Option1Option2

然后我生了一个Form个孩子MenuStrip parentMenu和两个ToolStripMenuItem元素:Option1OtherOption。这些合并属性仅适用于Opcion1并附加OtherOption

现在,问题出现了:当显示子表单并且组合了两个MenuStrip时,事件parentMenu.ItemAdded被tiggrered,因为OtherOption被添加到parentMenu.Items集合。 Option1不是这种情况。请注意,Option1.DropDownItems(在子表单中)可能存在父表单中Option1.DropDownItems中不存在的某些元素。

如何收到有关这些项目的通知?

(为了清楚起见:假设parentMenu.Items只包含ToolStripMenuItem Option1,其中只包含ToolStripMenuItem,比如'optionA'。假设childMenu.Items只包含ToolStripMenuItem Option1 1}}只包含ToolStripMenuItem optionB。当两个菜单合并时,我如何得到关于项目选项B被添加到父亲的通知?或者如何通知两个菜单合并,知道哪些元素是新的? )。

1 个答案:

答案 0 :(得分:0)

“MenuStrip合并将菜单项从一个ToolStrip移动到另一个ToolStrip而不是克隆它们,就像MainMenu一样。”请参阅here

因为它正在移动它们而不是克隆它们,请尝试ToolStripItem上的OwnerChanged事件。为您的每件商品加入此活动,当它转移到另一个工具条时会通知您。