【问题标题】:Adding a TrackBar control to a ContextMenu将 TrackBar 控件添加到 ContextMenu
【发布时间】:2010-12-02 19:46:32
【问题描述】:

是否可以将 TrackBar 控件添加到 ContextMenu?那么当我右键单击时,我的 ContextMenu 会下拉,并且 TrackBar 会作为菜单项出现?

【问题讨论】:

    标签: c# winforms contextmenu trackbar


    【解决方案1】:

    如果你的上下文菜单是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 属性,您甚至可以在表单设计器中看到该项目,如下图所示:

    附言
    这个解决方案来自这个MSDN example

    【讨论】:

    • 编辑添加设计师支持
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      对于任何偶然发现此问题的人来说,这是值得的:

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

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

      【讨论】:

        猜你喜欢
        • 2011-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-04
        • 1970-01-01
        相关资源
        最近更新 更多