开发者

Adding a TrackBar control to a ContextMenu

Is it possible to add a TrackBar开发者_开发知识库 control to a ContextMenu? So when I right click, my ContextMenu will drop down and a TrackBar will appear as a menu item?


If your context menu is a ContexMenuStrip, you can create an item in this way:

[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...
}

Thanks to the ToolStripItemDesignerAvailability attribute, you can even see the item in the Forms Designer, as shown in the image below:

Adding a TrackBar control to a ContextMenu

P.S.
This solution comes from this MSDN example


Yes, you need to set the context menu to user draw and draw the menu items yourself. You will have to create a custom MenuItem the implementes a TrackBar


For what it's worth for anyone who stumbles across this having problems with:

Constructor on type 'System.Windows.Forms.ToolStripControlHost' not found.

The only way I got it to work was by putting the derived control in it's own file. When it is in the same file as another control it confuses the designer.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜