Adding a TrackBar control to a ContextMenu

后端 未结 3 1433
盖世英雄少女心
盖世英雄少女心 2020-12-17 05:08

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?

相关标签:
3条回答
  • 2020-12-17 05:19

    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:

    alt text

    P.S.
    This solution comes from this MSDN example

    0 讨论(0)
  • 2020-12-17 05:27

    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

    0 讨论(0)
  • 2020-12-17 05:37

    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 讨论(0)
提交回复
热议问题