我的应用程序和上下文菜单中有相同选项的工具栏,所以我想 将ToolStripButtons添加到ContextMenuStrip和ToolStrip,遗憾的是我不能这样做。 即使我手动添加项目,它也仅显示在一个项目上。
现在我在工具栏中有按钮:
我想要这样的东西。我希望这个选项是一个,因为我会经常启用和禁用这个按钮,最后有一个选项,为什么两个按钮?
答案 0 :(得分:0)
这是一个常见问题,我发现最简单的解决方案是将“共享”代码放在继承自MenuFeature
的{{1}}类中。
您仍然需要创建此类的2个实例,但每个实例都非常轻量级,并且只有2个用法之间的任何差异的代码(即ContextMenu项可能使用ToolStripMenuItem
,而ToolStrip项可能使用ToolStripItemDisplayStyle.ImageAndText
)。
这允许公共代码仅在自定义ToolStripItemDisplayStyle.Image
类中存在一次,但仍允许对此菜单项的每次使用进行本地更改。
如果要自动同步MenuFeature
/ Enabled
/ etc等属性,可以在构造函数中维护所有实例的静态集合,然后使用{{1}等事件更新所有项目}}/等等。但是,我建议不要这样做,因为我发现同一个菜单“功能”的不同实例通常需要自己的状态 - 但是这个问题已超出范围,那些对我管理的项目感兴趣的人可以评论在这个答案或PM我。