将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’的构造函数。
让它工作的唯一方法是将派生控件放在它自己的文件中。 当它与另一个控件在同一个文件中时,它会使设计者感到困惑。