Добавление элемента управления TrackBar в ContextMenu

Можно ли добавить элемент управления TrackBar в ContextMenu? Так что, когда я щелкну правой кнопкой мыши, мой ContextMenu будет выпадать, и TrackBar появится в качестве пункта меню?

3 ответа

Решение

Если ваше контекстное меню 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

Да, вам нужно установить контекстное меню для рисования пользователем и рисовать пункты меню самостоятельно. Вам нужно будет создать собственный MenuItem, который реализует TrackBar

Для того, что это стоит для тех, кто сталкивается с этим с проблемами с:

Конструктор типа "System.Windows.Forms.ToolStripControlHost" не найден.

Единственный способ заставить его работать, это поместить производный элемент управления в его собственный файл. Когда он находится в том же файле, что и другой элемент управления, он сбивает с толку дизайнера.

Другие вопросы по тегам