gpt4 book ai didi

c# - 如何向 ContextMenuStrip 和 ToolStrip 添加相同的 ToolStripButtons?

转载 作者:太空宇宙 更新时间:2023-11-03 16:14:39 27 4
gpt4 key购买 nike

我的应用程序中有工具栏和具有相同选项的上下文菜单,所以我想将 ToolStripButtons 添加到 ContextMenuStrip 和 ToolStrip,不幸的是我不能这样做。即使我手动向两者添加项目,它也只显示在一个上。

现在我在工具栏中有按钮:

我想要这样的东西。我希望这个选项是一个,因为我会经常启用和禁用这个按钮,最后只有一个选项,所以为什么要两个按钮?

最佳答案

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

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

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

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

关于c# - 如何向 ContextMenuStrip 和 ToolStrip 添加相同的 ToolStripButtons?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16082069/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com