4

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

4

3 回答 3

13

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

替代文字

PS
这个解决方案来自这个MSDN例子

于 2010-12-02T20:30:15.167 回答
0

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

于 2010-12-02T19:50:28.417 回答
0

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

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

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

于 2012-03-15T07:35:47.823 回答