1

我正在用 C# 开发一个 MDI 应用程序。当两个 MenuStrip 组合时我遇到了麻烦:

我有父 ParentForm及其MenuStrip parentMenu一些ToolStripMenuItem元素: Option1, Option2.

然后我有一个孩子Form,它MenuStrip parentMenu有两个ToolStripMenuItem元素:Option1OtherOption。这些的合并属性是仅匹配Opcion1和附加的OtherOption

现在,问题来了:当显示子窗体并将两者MenuStrip结合时,事件 parentMenu.ItemAdded 被触发,因为OtherOption已添加到parentMenu.Items集合中。情况并非如此Option1Option1.DropDownItems请注意, (在子表单中) 可能有一些元素在Option1.DropDownItems父表单中不存在。

我如何才能收到有关这些正在添加的项目的通知?

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

4

1 回答 1

0

“MenuStrip 合并将菜单项从一个 ToolStrip 移动到另一个,而不是像 MainMenu 那样克隆它们。” 见这里

因为它是移动它们而不是克隆它们,所以请尝试OwnerChangedToolStripItem. 为您的每个项目连接到此事件,当它移动到另一个工具条时它会通知您。

于 2013-11-17T19:15:59.393 回答