将TrackBar控件添加到ContextMenu

是否可以将TrackBar控件添加到ContextMenu? 因此,当我右键单击时,我的ContextMenu将下拉并且TrackBar将显示为菜单项?

如果您的上下文菜单是ContexMenuStrip ,则可以通过以下方式创建项目:

 [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.MenuStrip | ToolStripItemDesignerAvailability.ContextMenuStrip)] public class TrackBarMenuItem : ToolStripControlHost { private TrackBar trackBar; public TrackBarMenuItem():base(new TrackBar()) { this.trackBar = this.Control as TrackBar; } // Add properties, events etc. you want to expose... } 

由于ToolStripItemDesignerAvailability属性,您甚至可以在Forms Designer中看到该项,如下图所示:

替代文字

PS
此解决方案来自此MSDN示例

是的,您需要将上下文菜单设置为用户绘图并自己绘制菜单项。 您必须创建一个自定义MenuItem来实现TrackBar

对于遇到这些问题的人来说,值得拥有的是:

找不到类型’System.Windows.Forms.ToolStripControlHost’的构造函数。

让它工作的唯一方法是将派生控件放在它自己的文件中。 当它与另一个控件在同一个文件中时,它会使设计者感到困惑。