将TrackBar控件添加到ContextMenu

时间:2010-12-02 19:46:33

标签: c# winforms contextmenu trackbar

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

3 个答案:

答案 0 :(得分:12)

如果您的上下文菜单是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中看到该项,如下图所示:

alt text

<强> P.S。
此解决方案来自此MSDN example

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

  

未找到类型'System.Windows.Forms.ToolStripControlHost'的构造函数。

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