2

I have tool bar in my app and context menu with the same options, so I want to add ToolStripButtons to both ContextMenuStrip and ToolStrip, unfortunately I can't do this. Even when I add manually items to both it shows only on one.

For now I have buttons in tool bar:

I want something like this. I want this options to be one, because I will be often enable and disable this buttons and finally there is one option so why two buttons?

4

1 回答 1

0

这是一个常见问题,我发现最简单的解决方案是将“共享”代码放在MenuFeature继承自ToolStripMenuItem.

您仍然需要创建该类的 2 个实例,但每个实例都非常轻量级,并且只有两种用法之间的差异的代码(即 ContextMenu 项可能使用ToolStripItemDisplayStyle.ImageAndText,而 ToolStrip 项可能使用ToolStripItemDisplayStyle.Image)。

这允许通用代码在您的自定义MenuFeature类中仅存在一次,但仍允许对该菜单项的每次使用进行本地更改。

如果您想自动同步 /etc 等属性EnabledVisible您可以在构造函数中维护所有实例的静态集合,然后使用EnabledChanged/etc 等事件更新所有项目。但是,我建议不要这样做,因为我发现同一菜单“功能”的不同实例通常需要它们自己的状态 - 但这超出了这个问题的范围,那些对我如何管理项目感兴趣的人可以发表评论关于这个答案或 PM 我。

于 2016-11-03T19:19:37.580 回答